最赞回答 / lv_一诺
老师讲的是一种特殊情况,正常情况来说,不会使用同名的函数。。。例如我只定义:A::test() const;而没有定义A::test();那么普通对象访问test()就是毫无争议的常成员函数了。
2018-08-14
已采纳回答 / 慕数据2169645
声明数组初始化过程中,会调用形参类型相匹配的构造函数,如果没有指定数组元素的初始值,就会调用默认构造函数。你在声明的时候没有指定初始值,所以需要调用默认构造函数。如果不调用默认构造函数的话,就需要设置初始值,就是我上一条回复你的那句。
2018-08-07
已采纳回答 / 穹庐陌路
Coordinate * const p 和 Coordinate const *p 是不一样的。Coordinate * const p 中的const 修饰指针,代表指针指向的地址是一个常量,地址不能改。Coordinate const *p 中的const 修饰指针变量,代表指针指向的变量是个常量,变量不能改。(叫变量可能有点问题,const Coordinate *p 也是可以的。)
2018-08-05
最新回答 / 我是尘风呀
int a =2;int *p=&a; 这里*号表示声明;声明p是一个指针变里 ,p的值为&a.。这里&是取地址符*p =2;这里*号 是解引用运算符 意思是返回指针所指的对象。你可以理解为 p是藏宝图 *p 是宝藏。
2018-08-01
最赞回答 / OnLearn
this是该对象指针,指向对象本身。其含义跟有多少成员变量或者成员函数无关。你所说的“只有一个成员len,所以*this代表的是len的值”这句话是错的。this指向对象本身,而*this代表的是对象本身,而不是某个成员。当然,可以通过this这个指向对象的指针来访问所有能访问到的对象成员。
2018-07-25
最新回答 / PersistentLee
coordiante.hclass coordinate{public: coordinate(int x, int y); ~coordinate(); int getx(); int gety();public: int m_ix; int m_iy;};coordinate.cpp#include"coordinate.h"#include<iostream>using namespace std;coordinate::coordinate(int x, int y){ m_ix = ...
2018-07-24
最赞回答 / OnLearn
你应该是对“类实例化”的理解还是不清楚,何为“类的实例化”,在C++中所有类型都视为一个“类”,C语言中只有类型的概念,举例说明:定一个整形变量,int i = 10; 但在C++中,int这个类型其实可以视为一个类,而刚才的写法可以写成对类的定义及初始化 int i(10); 10这个参数就是传给int这个类的构造函数的参数。而C++中所谓的“实例化”,其实就是C语言中的定义一个变量。而C语言中初始化其实就交给了C++中的构造函数来完成。要深入理解C++语言中的特性就离不开对C语言的对比,因为C++这个...
2018-07-24
最新回答 / 非鱼0_0
类里面是可以直接访问私有成员的,在类的外面才要调用get函数来访问私有成员,而且在类里面是声明和实现get,set函数,你在类中的拷贝函数里面去使用get,set函数,不是矛盾的吗。应该是这样的,希望有所帮助。
2018-07-23