Cpp:"->"和"."的区别
environments:gcc version 8.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)
class data{
public:
int x;
data(int vx):vx(x){}
void msg(){}
};
// create class data instances;
data d = data(3);
data* cpt = &d;
d.msg();
cpt->msg();
typedef struct col{
collection(int id, float score):cid{id},cscore{score}{}
int cid;
float cscore;
} collection;
// create struct col object
collection c{1,145.3};
cout << c.cid << endl ;
cout << c.cscore <<endl;
collection* spt = &c;
cout << spt -> cid << endl;
cout << spt-> cscore << endl;
Cpp中“.”和“->”说明:
1、“.”是成员运算符,用于调取成员变量和成员函数;符号“.”的左边必须是实例对象(具体对象),举例为绿色字体;
2、“->”是地址运算符,用于引用成员变量和成员函数;符号“->”的左边是实例对象的地址或者类名(结构名),举例为黄色字体;
3、等价形式:d.msg() 和 (*cpt).msg() 等价;c.cid 和 (*spt).cid;
4、“.”和“->”常用于“类和结构”相关操作;
5、结构体初始化说明:传送门
下面是具体代码:
#include<iostream>
using namespace std;
class Info{
private:
int iage;
int iid;
public:
Info(int age, int id):iage(age),iid(id){}
void msg(){
cout << "age = " << this->iage << "\t";
cout << "id = " << this->iid << endl;
}
};
typedef struct Data
{
Data(int id, float math):did{id},dmath{math}{}
float dmath;
int did;
} data;
int main(){
Info information = Info(, );
Info* cpt;
information.msg();
cpt = &information;
cpt -> msg();
data d{,};
cout <<"d.id = " << d.did << "\t";
cout <<"d.math = " << d.dmath << endl;
data* spt;
spt = &d;
cout <<"spt->id = " << spt->did << "\t";
cout <<"spt->math = " << spt->dmath << endl;
return ;
}
// result:
// age = 30 id = 1
// age = 30 id = 1
// d.id = 1 d.math = 145
// spt->id = 1 spt->math = 145
Cpp:"->"和"."的区别的更多相关文章
- h和.cpp文件的区别
关于头文件和源文件的分别 首先,我们可以将所有东西都放在一个.cpp文件内. 然后编译器就将这个.cpp编译成.obj,obj是什么东西? 就是编译单元了.一个程序,可以由一个编译单元组成, 也可以有 ...
- C++中头文件、源文件之间的区别与联系
.h头文件和.cpp文件的区别 疑惑1:.h文件能够编写main函数吗? 实验: 编写test.h文件,里面包含main函数 若直接编译g++ test.h -o test,通过file命令 file ...
- svn恢复到之前某个版本号
一直在找svn回滚的方法,这个还是非常有用的,屡试不爽阿 常常因为坑爹的需求,功能要切回到之前的某一个版本号.有两种方法能够实现: 方法1: 用svn merge 1) 先 svn up,保证更新到 ...
- c++——基本概念
如何理解c/c++中的指针?每种编程语言都使用指针,但Java.c#等将指针隐藏,而c/c++将指针暴露给了用户(程序员)https://www.cnblogs.com/gxcdream/p/4805 ...
- 面向对象程序设计第三次作业-Calculator
题目: 最终代码: Scan.h: Print.h: Calaulator.cpp: 解题过程 看到题目后,在查询之后明白了这是多文件的题目,然后通过翁凯老师的视频讲解知道了.h和.cpp文件的区别和 ...
- OOP_由C到C++
由C到C++ OOP第一课 C语言的局限 C++的特点 C++的程序特征 C++程序的结构特性 C++程序的编辑.编译和运行 ⭐C++对C的补充 C语言的局限 类型检查机制相对较弱,使得程序中的一些错 ...
- .c与.cpp的区别解析
这几天在练习数据结构等知识的时候,有时遇见文件保存为c后缀则能编译通过,有时又是保存cpp后缀才能通过.对于这个都没能区分清,是自己的基本功问题,于是百度了一下.幸好有许多和我一样有问题的人. 其实简 ...
- 【转】C与CPP后缀的文件在编译时的区别
本文出处连接, by Ray FAN(ielnaf@qq.com) ...
- C++中.cpp和.hpp的区别
原文地址:https://blog.csdn.net/qzx9059/article/details/89210571 c++中 cpp和hpp我们可以将所有东西都放在一个.cpp文件内,编译器会将这 ...
- 浅谈头文件(.h)和源文件(.cpp)的区别
浅谈头文件(.h)和源文件(.cpp)的区别 本人原来在大一写C的时候,都是所有代码写在一个文件里一锅乱煮.经过自己开始写程序之后,发现一个工程只有一定是由多个不同功能.分门别类展开的文件构成的.一锅 ...
随机推荐
- Javascript获取当前鼠标在元素内的坐标定位
代码如下: <!doctype html> <html> <head> <meta charset="utf-8"> <tit ...
- 2020牛客寒假算法基础集训营4 I 匹配星星
https://ac.nowcoder.com/acm/contest/3005/I 又做麻烦了,悲催... 将所有星星按x坐标为第一关键字,z为第二关键字排好序 那么一个z=1的星星匹配的是x比它小 ...
- unity基础开发----Unity获取PC,Ios系统的mac地址等信息
在软件开发中可以会用到mac地址作为,设备的唯一标示,我们也可以通过unity获取,经测试pc,ios都可以但是安卓没有获取到. 代码如下: using UnityEngine; using Syst ...
- MongoDB 删除,添加副本集,并修改副本集IP等信息
MongoDB 删除,添加副本集,并修改副本集IP等信息 添加副本,在登录到主节点下输入 rs.add("ip:port"); 删除副本 rs.remove("ip:po ...
- 033-PHP对一个数组先奇后偶,然后再进行从大到小排序
<?php function Compare($str1, $str2) { if (($str1 % 2 == 0) && ($str2 %2 == 0)) { if ($st ...
- 小程序Promise
/** 异步函数回调简化处理 const promisify = require('./promisify') const getSystemInfo = promisify(wx.getSystem ...
- 每天一点点之css - 动画-一个圆绕着另一个圆动(绕着轨迹运动)
最近要开发一个类似星河的效果,需要小圆绕着一定的轨迹运动,这个时候我首先想到的是使用canvas来实现,在实现过程中发现这个实现起来不是很灵活,然后想到css3有动画也可以实现,下面是效果 注:图2是 ...
- POJ 1004:Financial Management
Financial Management Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 165062 Accepted: ...
- windows LARGE_INTEGER 错误码输出格式
如果是负数,I32X 版权声明:本文为博主原创文章,未经博主允许不得转载.
- 路由反射器(RR)配置
IBGP与EBGP的区别:是否使用指定源(update-source) 路由反射器(RR)配置: 零:关闭同步,关闭自动汇总. ①:启用BGP ②:在相同BGP-AS下建立邻居. ③:指定路由器及所在 ...