-
浅拷贝会使指针内存泄露查看全部
-
const成员函数对比2查看全部
-
const函数对比变化1查看全部
-
常成员函数不能更新对象的数据,也不能调用非const修饰的成员函数。 常成员函数中可以使用普通的数据成员,但是不能改变对象成员的值; 常对象只能调用类的常成员函数以及类的静态成员函数; 然而非常对象也可以调用常成员函数。 上面是简单的总结。查看全部
-
常成员函数能由常对象(只有读权限)去访问,且不允许常成员函数修改对象的成员变量(没有写权限),所以不能调用非常成员函数,因为这些成员函数可能修改常对象中的成员变量。 而普通成员函数可以调用常成员函数。 1. 常对象只能调用常成员函数。 2. 普通对象可以调用全部成员函数。 3. 当对一个对象调用成员函数时,编译程序先将对象的地址赋给this指针,然后调用成员函数,每次成员函数存取数据成员时,由隐含使用this指针。查看全部
-
常成员函数中可以使用普通的数据成员,但是不能改变对象成员的值查看全部
-
通过常对象调用的函数为常成员函数查看全部
-
常成员函数和同名成员函数互为重载查看全部
-
深拷贝要先申请一段内存,再将需要拷贝的值用for循环一个一个赋值查看全部
-
常成员函数查看全部
-
#include "Line.h" #include <iostream> using namespace std; Line::Line(int x1,int y1,int x2,int y2):m_coorA(x1,x2),m_coorB(x2,y2) { cout <<"Line()" <<endl; } Line::~Line() { cout <<"~Line" <<endl; } void Line::setA(int x,int y) { m_coorA.setX(x); m_coorA.setY(y); } void Line::setB(int x,int y) { m_coorB.setX(x); m_coorB.setY(y); } void Line::printInfo() { cout << "(" << m_coorA.getX() <<"," << m_coorA.getY() <<")"<<endl; cout << "(" << m_coorB.getX() <<"," << m_coorB.getY() <<")"<<endl; } #include <iostream> #include <stdlib.h> #include "Line.h" using namespace std; int main(void) { Line *p = new Line(1,2,3,4); p->printInfo(); delete p; p = NULL; system("pause"); return 0; }查看全部
-
class Coordinate { public: Coordinate(int x,int y); ~Coordinate(); void setX(int x); int getX(); void setY(int y); int getY(); private: int m_iX; int m_iY; }; #include "Coordinate.h" #include <iostream> using namespace std; Coordinate::Coordinate(int x,int y) { m_iX = x; m_iY = y; cout <<"Coordinate()" << m_iX << "," <<m_iY<<endl; } Coordinate::~Coordinate() { cout <<"~Coordinate()" << m_iX << "," <<m_iY<<endl; } void Coordinate::setX(int x) { m_iX = x; } int Coordinate::getX() { return m_iX; } void Coordinate::setY(int y) { m_iY = y; } int Coordinate::getY() { return m_iY; } #include "Coordinate.h" class Line { public: Line(int x1,int y1,int x2,int y2); ~Line(); void setA(int x,int y); void setB(int x,int y); void printInfo(); private: Coordinate m_coorA; Coordinate m_coorB; };查看全部
-
#include "Line.h" #include <iostream> using namespace std; Line::Line() { cout <<"Line()" <<endl; } Line::~Line() { cout <<"~Line" <<endl; } void Line::setA(int x,int y) { m_coorA.setX(x); m_coorA.setY(y); } void Line::setB(int x,int y) { m_coorB.setX(x); m_coorB.setY(y); } void Line::printInfo() { cout << "(" << m_coorA.getX() <<"," << m_coorA.getY() <<")"<<endl; cout << "(" << m_coorB.getX() <<"," << m_coorB.getY() <<")"<<endl; } #include <iostream> #include <stdlib.h> #include "Line.h" using namespace std; int main(void) { Line *p = new Line(); delete p; p = NULL; system("pause"); return 0; }查看全部
-
class Coordinate { public: Coordinate(); ~Coordinate(); void setX(int x); int getX(); void setY(int y); int getY(); private: int m_iX; int m_iY; }; #include "Coordinate.h" #include <iostream> using namespace std; Coordinate::Coordinate() { cout <<"Coordinate()" <<endl; } Coordinate::~Coordinate() { cout <<"~Coordinate()" <<endl; } void Coordinate::setX(int x) { m_iX = x; } int Coordinate::getX() { return m_iX; } void Coordinate::setY(int y) { m_iY = y; } int Coordinate::getY() { return m_iY; } #include "Coordinate.h" class Line { public: Line(); ~Line(); void setA(int x,int y); void setB(int x,int y); void printInfo(); private: Coordinate m_coorA; Coordinate m_coorB; };查看全部
-
shilihua查看全部
举报
0/150
提交
取消