永发信息网

qt里的一些语句不懂,和一个指针问题;求解释~~

答案:1  悬赏:40  手机版
解决时间 2021-01-31 18:06
  • 提问者网友:孤山下
  • 2021-01-31 01:05
qt里的一些语句不懂,和一个指针问题;求解释~~
最佳答案
  • 五星知识达人网友:话散在刀尖上
  • 2021-01-31 01:39
1、A *c;A是自己定义的类,这里是定义了类型为A*的指针c吗?
这里表示定义了类A的对象指针
2、d = c->m();m是一个定义好的函数,这句话是什么意思?执行(c->m())后再把值赋给d?c->m()具体是什么意思?他是不是和c.m等价?对箭头操作符不太懂……
因为C是A类的对象指针(其实也是一个对象),所以c可以->m(); 其中m()应该是类A的一个成员函数吧,是的话就表示对函数的调用! c->m()不等价于c.m,而是等价于(*c).m() 。
至于d = c->m();应该是赋值语句,应为我没看你的源程序所以我无法给你解答具体的含义。
3、c = new A(tr("/dev/video0"));A是定义好的类,这句话又是什么意思?
因为c是A的一个对象指针,所以c = new A(tr("/dev/video0"));就表示为c 动态分配一个存储A类 类型数据的内存,并用tr("/dev/video0")对它进行初始化。
内存空间申请
new 有三种格式
1、new 数据类型;
2、new 数据类型(初始化值);
3、new 数据类型 [常量表达式];
例如:
int *p=new int;
float *p=new float;
Student *p=new Student; //Student 是学生类
*p =4; //通过指针访问申请的内存空间 他也等于int *p=new int(4);
cout<<*p<还有就是 char*str=new char[100];//申请100个字符空间的数组,并把首地址赋给字符指针
最后还要注意释放内存 delete[ ] str;

从你的问题可以看出你“对类与对象”,“指针与数组”,动态内存空间申请掌握的并不好,下去一定要找相关资料好好研读,不然你以后的课程会很难学!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯