2015-01-21 20:09:42
C++ 中 -> 与 . 的区别是什么呢?
首先肯定,两者是有不同的。因为我在VC++6.0中的代码:
//menu.Detach();
menu->Detach();
如果是用menu.Detach(); 就会成功,而menu->Detach();就会提示如下的错误:
E:\VC_WORKSPACE\Menu\MainFrm.cpp(102) : error C2227: left of '->Detach' must point to class/struct/union
通过百度搜索得到的结果是:
from:http://zhidao.baidu.com/link?url=qO4b86bUlDzEk9jlqRNk1bdpo8lCnchW6WPEXeuxc09NoWUkGkI2EJIJxeIfYfBXy3zEi72Yao_MCnH_6Ijnya
主要用于访问类的成员,->主要用于类类型的指针访问类的成员,而.运算符,主要用于类类型的对象访问类的成员。 举例 class A {public :int a} A ma; A *p=&ma; 那么指针p应使用->来访问成员a,比如p->a,而ma应使用.来访问,比如ma.a区别就在这里,凡是指针就使用->,对象就使用.运算符。
两者分析对比,我认为通过百度搜索的这个结果是正确的。
如果是类类型的指针就用-> ,如果是类类型的对象,就用.访问它的成员变量或函数。
我在自己的程序中的代码段也能证明,如下:
//装载菜单
//下面是用类类型对象的方法,运行结果是正确的。
CMenu menu;
//menu.LoadMenu(IDR_MAINFRAME);
//SetMenu(&menu);
//menu.Detach();
//下面是类类型指针的方法,在写->在VC++60中就会提示成员函数。运行结果是成功
//但是要注意给pMenu做初始化: pMenu = &menu
CMenu * pMenu;
pMenu = &menu;
pMenu->LoadMenu(IDR_MAINFRAME);
SetMenu(pMenu);
pMenu->Detach();
相关推荐
cocos2d-x是一款开源的游戏开发框架,基于C++,广泛应用于跨平台的移动游戏开发,支持iOS、Android以及Windows等操作系统。 在cocos2d-x 3.x版本中,主要的更新和改进包括: 1. **性能优化**:cocos2d-x 3.x对渲染...
三、x86与x64的区别 x86版本的扩展库适用于32位操作系统,可以处理最多4GB的内存;而x64版本则为64位操作系统设计,能够利用更大的内存空间,适合处理大数据量和高性能计算任务。在部署应用时,需要根据目标系统的...
JavaCPP通过类型映射和内存管理机制,简化了Java与C++之间的交互,避免了JNI(Java Native Interface)的复杂性。在JavaCV中,JavaCPP用于封装OpenCV、FFmpeg等库的C++接口,使得Java开发者可以像操作Java类一样使用...
标签"代码 C语言"表明这个项目与C++编程密切相关,尽管C++是从C语言发展而来的,但它们在语法和特性上有显著区别。C++提供了类、对象、模板等面向对象的特性,使得它更适合构建复杂的应用程序。 现在让我们详细探讨...
《C++编程基础与进阶课程大纲》 C++是一种广泛应用的面向对象的编程语言,以其高效、灵活性和强大的功能而备受青睐。本课件旨在为初学者提供一个全面而简洁的C++学习路径,从基础知识到高级特性,涵盖了C++编程的...
C++开源框架Qt 5.15.2源码,用来开发和研究qt程序不错。
6. **MinGW与MingW-w64的区别**: - MinGW仅支持32位Windows系统,而MinGW-w64则支持32位和64位Windows系统。如果你需要在64位Windows上开发,可能需要寻找包含MinGW-w64的IDE解决方案。 总的来说,Dev-Cpp 5.3....
《Effective Modern C++:42 Specific Ways to Improve Your Use of C++11 and C++14》是Scott Meyers继其早期的经典《Effective C++》系列书籍之后,专门针对C++11和C++14标准所著的实践指南。本书不仅介绍了C++11...
在C/C++编程语言中,结构体是一种复合数据类型,允许我们将多个不同类型的变量组合成一个单一的实体。当我们处理结构体时,有时需要通过指针来访问其成员,这时就会遇到使用点操作符(.)和箭头操作符(->)的情况。...
实验一 复习C++有关知识<br>实验目的:<br>通过实验掌握下列知识: <br>1、复习C++有关基本知识;<br>2、熟悉VC编程、编译和调试环境;<br>内容及步骤:<br>编写一个类Complex,定义复数的加法、减法、乘法和除法运算,...
该书旨在帮助程序员避免和纠正常见的C++设计与编程错误,并深入探讨了语言的一些微妙特性以及高级编程技巧。 ### 重要知识点 #### 1. 基础错误 - **过度注释(Gotcha #1)**:书中提到了一个常见的误区——过度...
- **Chapter 12 - Character, C-String, and C++ String Class Functions**:介绍字符处理函数、C风格字符串处理函数以及C++标准库中的string类。 - **Chapter 13 - Persistent Data: File Input and Output**:讲解...
Cortex-M3与Cortex-M4是ARM公司推出的两种针对微控制器应用的处理器内核,它们在嵌入式系统设计中被广泛应用。本资源“Cortex-M3与Cortex-M4指南.part3”可能是一个系列教程或文档的一部分,专注于讲解这两种内核...
4. **C++面向对象编程**:介绍类的定义、对象的创建、封装、继承、多态等概念,这是C++区别于C的关键特性。 5. **C++标准库**:讲解STL(Standard Template Library)中的容器(如vector、list、set、map)、算法...
4. **数组与指针**:C++中的数组允许存储同类型的多个数据项,而指针则提供了对内存地址的直接操作。通过指针,我们可以实现动态内存管理,以及高效的数据结构,如链表和树。 在阅读《Accelerated C++》的前四章并...
3.CyAPI => Application => Cpp: Streamer and bulkloop C++ application source code ->ReadMe.txt :Refer ReadMe.txt file for more information on streamer or bulkloop application. 4.ReadMe.txt