越学到后面感觉有点吃力了,思维快要跟不上了,有些地方要回头看两遍才理解,不知道跟往后会是怎么样的一个情况,不过,既然都到这里了,也不能半途而废,加油吧,少年!
2017-03-06
常数据成员定义: const 变量名;用法:只能被常成员函数或者常对象调用
常成员函数定义: 函数名(参数)const;相当于函数名(const Coordinate*this,参数)。用法:一般用于无参数函数当中,例如get(),print()函数中。作用是将当前的对象*this修饰成常对象,常对象的属性不能修改,因而不能在常成员函数中修改数据成员的值。
常对象:const 类名 对象名; 只能调用常成员函数,或者常数据成员。
常成员函数的作用一般作为只读函数使用,不修改成员数据的值。利用const函数,也增加程序的可读性。
常成员函数定义: 函数名(参数)const;相当于函数名(const Coordinate*this,参数)。用法:一般用于无参数函数当中,例如get(),print()函数中。作用是将当前的对象*this修饰成常对象,常对象的属性不能修改,因而不能在常成员函数中修改数据成员的值。
常对象:const 类名 对象名; 只能调用常成员函数,或者常数据成员。
常成员函数的作用一般作为只读函数使用,不修改成员数据的值。利用const函数,也增加程序的可读性。
2017-03-06
常对象定义的语法:const 类名 对象名(参数列表)|| 类名 const 对象名(参数列表)//声明时必须初始化
常成员函数定义的语法:类型标识符 类名::函数名(参数列表) const
常成员函数声明的语法:类型标识符 成员函数名(参数列表) const
互为重载说明常对象只能调用常成员函数
常成员函数定义的语法:类型标识符 类名::函数名(参数列表) const
常成员函数声明的语法:类型标识符 成员函数名(参数列表) const
互为重载说明常对象只能调用常成员函数
2017-03-06
记住:我们设置了类,但是设置许多实例化的对象通过构造函数,拷贝构造函数实现数据与数据成员的赋值,旧的对象与新的对象之间的联系,多个对象可以调用同一个类中的成员函数,其放置在代码区并不受影响,对于我们来说,我们关心成员函数的输出,申请一个新对象既是开辟一个新的内存单元存储数据成员以使对象之间区别出来。
这些基础上穿插了对象数组,对象成员,对象成员指针,研究的其实还是不同的数据成员与成员函数之间的新关系。课里为我们演示了构造函数,拷贝构造函数,析构函数的使用原理,也讲述了栈和堆的不同,希望自己能分清楚。
这些基础上穿插了对象数组,对象成员,对象成员指针,研究的其实还是不同的数据成员与成员函数之间的新关系。课里为我们演示了构造函数,拷贝构造函数,析构函数的使用原理,也讲述了栈和堆的不同,希望自己能分清楚。
2017-03-06
对象成员指针:实例化 Line 的时候,先调用 Coordinate 构造函数,再调用 Line 构造函数,销毁的时候,先销毁堆中的对象即 Coordinate 对象,再销毁 Line 对象。跟对象成员有区别,对象成员会先销毁 Line 对象,再销毁内层的 Coordinate 对象。
2017-03-06
浅拷贝就是直接将数据成员的值直接赋值过去,不包含指针就行,如果包含指针,就会把两个对象的指针指向了同一个内存空间,容易发生错误。
2017-03-05
最赞回答 / qq_啊你竟然丶_0
首先,p指针释放并不需要自加,因为delete[]这个就表示要释放一段连续的内存,如果还要挨个释放,那么跟直接delete有什么区别;其次我再解释一下为什么p要++之后再释放,请注意上面那个使用到p的循环,每次循环都自减;p先是指向第三个元素,然后第一次循环,将第三个元素打印,然后p自减,变为指向第二个元素;第二次循环,将第二个元素打印,然后p自减,变为指向第一个元素;第三次循环,将第一个元素打印,然后p自减,变为指向第一个元素地址的再上一个;这时,p的地址并不是我们先前申请的那块连续地址的首地址,而我们...
2017-03-04