跪求精辟解释一下VC中 . 和->和::的意义
发布网友
发布时间:2024-09-26 08:40
我来回答
共2个回答
热心网友
时间:2024-10-05 18:05
这几个都是类有关的概念, '.' 和 '->'都是引用类的成员, 但'.'是由类的实体引用, '->'是由类的指针引用, 比如
classA a , * pa;
pa=&a;
a.member;
pa->member;
而::则是在定义类的成员函数时使用, 比如要为classA定义一个成员函数.如:
classA::Func(...)
如果不是静态函数,则应该使用 '.'或'->'对函数进行引用, 但果是静态函数, 则使用 classA::Func(..)进行引用
热心网友
时间:2024-10-05 18:05
.取对象的成员变量或成员函数。前面是个对象实体。
->也是取对象的成员变量或成员函数,但是前面是一个指针。表示这个指针指向的类对象的成员。
::表示取类或命名空间的某个成员变量或成员函数,跟对象无关。比如调用某个类的成员函数,可以这样使用。
CSomeClass::SomeProc();
——但是要说明的是,1如果SomeProc是一般成员函数,这个调用必须在CSomeClass 或其继承子类的成员函数中调用,否则编译器找不到对象地址。2如果SomeProc是静态成员函数,就可以在一个工程的任何地方被调用(头文件被包含了)。3.如果是命名空间成员函数,一样可以在任何地方调用。
如果是静态成员变量,一样可以::来使用。
对于命名空间 namespace,可以理解成全部是静态函数的类。namespace的作用仅仅是为了防止多个函数名称相同而冲突。