已采纳回答 / 慕侠2466091
这是一个很特别的情况。 理论上是要报错的,应该无法执行,编译阶段就报错。"helloworld" 是字符串常量,它是不允许被修改的。所以你说的“.... 但指向的空间中的数据可变” 这句话不对。 字符串常量存放的位置是很特殊的,是只读的,不允许修改。可以像下面这样做:char arr[20] = "helloworld";char * const foo = arr;foo[0] += 'c';cout << foo << endl;
2020-09-26
已采纳回答 / justyk
其实没有区别,使用一个和两个作用相同,把这几个成员函数和数据成员放在一个public下也是一样的。写两个时为了增加代码的可读性,区分数据成员和成员函数,当定义的数据成员和成员函数很多时,它的优势就显现出来了。
2019-11-13
已采纳回答 / 慕尼黑7462800
Array 是我们自己定义类名称(或称为数据类型),在Array后的&是引用符,两者加在一起说明后面跟着的函数返回类型是Array类型的实例,就如课件中例子显示的,返回的是*this。
2019-09-29
已采纳回答 / 慕运维3124395
1.2均不合法,3存在语法错误数组符号代表进行一次访问,1中p[1]代表访问到了第二个对象,此时再用->再次访问就不合理了;p中存放的地址是第一个对象的,p+1代表第二个对象的地址,此时p+1还未进行访问操作,直接使用.取成员依旧是不合理的;同理p+1代表一个指针存放第二个对象的地址,可以进行访问拿到m_x这个成员,但是p+1应该加上小括号,因为->的优先级高于+;
2019-08-18
已采纳回答 / AlexPan0610
视频中的代码是 cout << "arr.m_iCount" << arr.getCount() << endl;虽然提示信息写的是"arr.m_iCount",实际访问的方法是arr.getCount()。
2019-08-06
已采纳回答 / 我是尘风呀
兄弟我把你的代码复制下来能跑啊#include & stiostream&rrausing namespace std;class Array{public: Array(int len) { this-&oidlen = len; } ~Array() {}; void setLen(int len) { this-& relen = len; } int getLen() { return len; } Array< printIn...
2019-06-11
已采纳回答 / 我是尘风呀
Coordinate coorArr[2];这一句的意思是使用默认构造函数(不含参数的)生成两个对象。但类没有构造函数的时候系统会自动生成一个无参构造函数,也就是默认构造函数。但是当你自己定义了构造函数了,系统就不会再给你自动生成构造函数。你的类只有你定义了一个由参构造函数,所以你只能用你定义的那个有参函数去创建对象例如:Coordinate coor(1,2)这是栈中或Coordinate *co =new Coordinate(1,2)这是堆中。上面那句代码需要调用无参构造函数,你没有,所以会报错创建...
2019-05-29