-
this指针的地址就是它所在对象本身的地址
查看全部 -
截图
查看全部 -
return *this返回的是arr1的拷贝,是值传递,,并不是arr1。 Array& 的返回值成为当前对象即arr1的引用 返回指针 Coordinate *c(int x=5) { this->x = x; return this; }查看全部
-
对象成员:一个对象作为另外一个类的数据成员
对象成员指针:一个对象的指针作为另外一个类的数据成员
1.对象成员指针的定义: 类名 * 指针名 是指针而不是对象
2.指针在32位编译器和64位编译器下的结果(x64 与 x86)
3.若存在对象成员指针1,2……。sizeof(指针1,指针2……)只计算各指针所
占内存的总和,不计算对象成员所占内存
对象成员指针如果在构造函数用 new 的方式从堆中申请内存实例化2个
Coordinate 对象,那这2个对象都是在堆中,而不在 Line 对象中,因为每个指
针占 4 个内存单元,因此 sizeof(Line) 只占 8 个内存单元,销毁 Line 的时
候,先销毁队中的内存,在释放 Line 本身的内存
查看全部 -
C++在new时的初始化的规律可能为:对于有构造函数的类,不论有没有括号,都用构造函数进行初始化;如果没有构造函数,则不加括号的new只分配内存空间,不进行内存的初始化,而加了括号的new会在分配内存的同时初始化为0。class Coordinate { public: int m_iX; } int main(void { Coordinate *p = new Coordinate(); cout << p->m_iX << endl; return 0; } 输出结果为0
查看全部 -
C语言的malloc与C++的new都具有申请新内存空间的作用,但是new会调用对象的构造函数,而malloc不会调用
查看全部 -
深拷贝实例
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"Array.h" #include <iostream> using namespace std; Array::Array(int count) { m_iCount = count; m_pArr=new int[m_iCount]; for(int i=0;i<m_iCount;i++) { m_pArr[i]=i; } 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 <<"m_pArr=" <<m_pArr <<endl; } void Array::printArr() { for(int i=0;i<m_iCount;i++) { cout << m_pArr[i] <<endl; } }
查看全部 -
浅拷贝只拷贝指针,但拷贝后两个指针指向同一个内存空间;深拷贝不但对指针进行拷贝,而且对指针指向的内容进行拷贝,经深拷贝后的指针指向两个不同地址。当类成员不包括指针何引用时,浅拷贝并无问题;但对于指针与引用成员,当对象的生命周期结束后,浅拷贝会造成同一块内存单元被释放两次,导致内存泄漏。查看全部
-
选定一段代码 ctrl+K+C可以注释整段代码
查看全部 -
普通对象可以调用常成员函数,也可以调用普通成员函数。
查看全部 -
想我初学C++的时候,还是VC6.0视频横行天下的时候。那时候看视频就觉得老是和自己用的vs2010环境搭不上而苦恼万分。现在vs2015都出了,我用的还是2010.虽然和视频很搭,但是该高兴呢还是无奈╮(╯╰)╭
查看全部 -
this是墙头草啊,有奶便是娘。在谁那里指向谁。。
查看全部 -
为防止调用头文件发生类重定义的错误,可如下处理
在头文件最上方写:
#ifndef XXXXXXX
#define XXXXXXX
文件最后
#endif
查看全部 -
在main函数文件中,头文件不能重复调用,即在调用的头文件Line中包含的Coordinate不能再调用。否则会报错,显示类重定义。
查看全部 -
类的构造函数中包含指针p,要在析构函数中释放内存以及赋值“NULL”
查看全部
举报