C++中".","->",":"和"::"的区别

在学习C++的过程中我们经常会用到.::->这几个符号,很多新手在遇到这几个符号的时候都会有点弄不清楚,当然包括笔者,这里笔者稍微总结一下这几者的却别

    1、`A.B`则A为对象或者结构体;

    2、`A->B`则A为指针,->是成员提取,A->B是提取A中的成员B,A只能是指向类、结构、联合的指针;

    3、`::`是作用域运算符,A::B表示作用域A中的名称B,A可以是名字空间、类、结构;

    4、`:`一般用来表示继承;

一般情况下用“.”,只需要声明一个结构体。格式是,结构体类型名+结构体名。然后用结构体名加“.”加域名就可以引用域 了。因为自动分配了结构体的内存。如同 int a;一样。
而用“->”,则要声明一个结构体的指针,还要手动开辟一个该结构体的内存,然后把返回的指针给声明的结构体指针,才能用“->”正确引用。否则内存中只分配了指针的内存,没有分配结构体的内存,导致想要的结构体实际上是不存在。这时候用“->”引用自然出错了,因为没有结构体,自然没有结构体的域了。

发布了65 篇原创文章 · 获赞 141 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/Silent_F/article/details/88212398