C++中的“::”和“.”有什么区别?

C++中的“::”和“.”有什么区别?

c++语言是c语言发展起来的,所以继承了c语言几乎所有的特点,但c++语言又有自己的个性。c语言是一种面向过程的编程语言,而c++主要是面向过程的,因此c++有类的概念,而c语言就没有。c++的功能强大,编译器复杂,适合高端程序的设计和编辑,c语言的编译器简易,适合低端程序。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-07-10
C++中的“::”和“.”都可以用来访问类的成员,但它们有一些区别。

1. “::”被用来访问类的静态成员或全局命名空间中的变量或函数。例如,类A中声明了一个静态成员变量x,我们可以使用A::x来访问它。同样,如果我们在类A外定义了一个全局变量y,我们可以使用::y来访问它。

2. “.”被用来访问类的非静态成员。例如,如果类A中声明了一个非静态成员函数f(),我们可以使用A a; a.f()来调用它。

3. 另外一个区别是,使用“.”时,成员变量和函数被访问对象的限定符所决定,而使用“::”时,它们被直接限定在类或全局命名空间中。例如,如果在类A中同时声明了一个静态成员变量x和一个非静态成员变量y,我们可以使用A::x来访问静态成员变量,使用a.y来访问非静态成员变量,其中a是A类的对象。

4. 另一个区别是,使用“::”时可以使用作用域解析运算符来进行重载函数或隐式转换函数的调用。例如,如果我们定义了一个名为f()的全局函数和一个名为f()的类A的成员函数,我们可以使用A::f()来调用类A的成员函数,而使用::f()来调用全局函数f()。

总之,“::”和“.”都是C++中访问类成员的运算符,但它们有一些区别,需要根据具体使用场景进行选择。
第2个回答  2014-07-24
简单说,::是域运算符,即后者是前者中的部分;而.是取成员操作符,即表示后者是前者的成员。
第3个回答  2019-11-17
c++中=和==的区别:
=:是赋值,使值为=后的数。
==:是比较,是与==后的数进行比较,相等为真,如果不相等为假。
如:
a=3,意思是令a的值为3,
a==3,不会改变3的值,只是将a的值与3进行比较,如果a等于3,则a==3为真,如果a不等于3,则为假。
第4个回答  2014-07-24
”::“ 用于class类,表示类成员函数,类成员变量,
另外, “::”也可以用于调用系统api函数

”.“ 用于struct或union 结构,表示其成员变量;追问

Student s1,s2;

s1.age = 1;

s1.name = "abc";

s2.age = 2;

s2.name = "def";
“.”也可以访问类成员变量啊~