-
同步加&符号查看全部
-
arr1.printInfo ().setLen (5); //不能输出5,因为返回的*this出来之后就变成另外的一个临时的对象,并不是arr1,如果想要是arr1,则在定义的时候用Array& Array::printInfo()(Array&(返回值类型是Array类型的引用)的作用是*this的返回值成为当前对象即arr1的引用。如果返回值是类名,那么就会返回一个另外的一个对象,不是原对象,想要返回原对象就使用引用或者指针) //通过指针和引用两种方式改变实际的值!查看全部
-
Array(const Array& arr)拷贝构造函数,传入的参数是arr查看全部
-
this->len表示数据成员的len查看全部
-
this查看全部
-
堆中实例化的数组需要手动销毁释放内存,在栈中实例化的数组,系统自动回收内存查看全部
-
用delete释放数组内存时要注意此时的指针*p要指到该数组的第一个元素上。查看全部
-
当指针*p 进行p++后,索引p[0]指的是++后的元素而不再是先前的元素。查看全部
-
int main(void){ Array arr1(5); Array arr2(arr1); //arr1.setCount(5); arr1.printArr (); arr2.printArr(); cout<<"arr2.m_iCount"<<arr2.getCount()<<endl; return 0;} class Array {public: Array(int count); Array(const Array &arr); ~Array(); void setCount(int count); int getCount(); void printAddr(); void printArr(); private: int m_iCount; int *m_pArr;}; #include<iostream> #include"Array.h" using namespace std; Array::Array(int count) { for(int i=0;i<m_iCount;i++) {m_pArr[i]=i ;} m_iCount=count; m_pArr=new int[m_iCount];cout<<"Array()"<<endl;} Array::Array(const Array &arr) {m_iCount=arr.m_iCount; m_pArr=new int[m_iCount]; for(int i=0;i<m_iCount;i++) {m_pArr[i]=arr.m_pArr[i] ;} cout<<"Array&"<<endl;} Array::~Array(){ delete []m_pArr; m_pArr=NULL; cout<<"~Array()"<<endl;} void Array::setCount(int count){m_iCount=count;} int Array::getCount(){return m_iCount;} void Array::printAddr (){cout<<"p值"<<m_pArr<<endl;} void Array::printArr (){ for(i=0;i<m_iCount;i++){cout<<m_pArr[i]<<endl;} }查看全部
-
算法,左手或右手扶墙。查看全部
-
*const p表示这个指针不能再指向其他的对象,但是它本身指向的对象是可以读写变化的。查看全部
-
实例化对象时,加上const,就可以调用常成员函数。查看全部
-
常成员函数和普通的成员函数同名时,可以把它们看成互为重载查看全部
-
const写在函数声明的后边查看全部
-
this指针相当于它所在对象的地址查看全部
举报
0/150
提交
取消