对象成员方法的使用"/>
C++:对象成员方法的使用
首先复习一下const :
//const:
//Complex* const pthis1 = &ca; //约束指针自身 不能指向其他对象
// pthis1 = &cb; err
//pthis1->real;
//const Complex* const pthis1 = &ca;//指针指向 指针自身 都不能改
//pthis1->real; 只可读 不可写//const Complex cc{5,6}; 当前对象为常对象(属性值不能改变)
//Complex* pthis3 = &cc; err pthis3指向cc 可以改变cc的值
// Complex* const pthis4 = &cc; err const约束指针的自身 我们需要约束指针的指向
//const Complex* const pthis4 = &cc; OK
C++类的编译:
1.识别属性
2.函数名,返回类型 函数形参 形参个数
3.改写 :标识符和类型里面设计的属性标识符相同时加this指针
1.普遍方法与const成员函数
示例:
class Complex
{
private:int real;int image;
public:Complex(int r = 0, int i = 0) :real(r), image(i){cout << "Create Complex: " << this << endl;Print();}~Complex(){cout << "Destroy Complex: " << this << endl;}//函数内部的方法//void Print(const* Complex * const this)void Print() const //常方法 {cout << "Real= " << this->real << "Image= " << this->image << endl;int x = this->GetReal();}//void Print(Complex * const this)void Print(){}void SetReal(int r){real = r;}void SetImage(int i){this->Print();image = i;}//int GetReal(Complex* const this) 自身为常性int GetReal()const{return real;}int GetImage()const{return image;}//函数内部的方法
};//普通对象既可以调动普通方法 又可以调动常方法
//常对象只可以调动常方法int main()
{Complex ca{ 1,2 }; //普通对象 优先调动同名的普通方法,其次调动常方法const Complex cb{ 2,3 };ca.Print();cb.Print();return 0;
}
运行结果:
2.引用的使用:
#include<iostream>
using namespace std;
class Complex
{int Real;//实部int Image;//虚部
public:Complex() //缺省函数的构造{Real = 0.0;Image = 0.0;cout << "creat object:Complex()" << endl;}Complex(int r, int i) //带参数的构造函数{Real = r;Image = i;cout << "creat object:Complex(int ,int)" << endl;}void SetReal(int r) {Real = r; }void SetImage(int i){Image = i;}int GetReal(){return Real;}int GetImage(){return Image;}//int GetReal() const {return Real;}//int GetImage()comst {return Image;}int &Realval(){return Real;}int &Imageval(){return Image;}int Realval() const {return Real;}int Imageval() const{return Image;}void print() const //常方法{cout << "Real= " << Real << 't' << "Image= " << Image << endl;}
};
int main()
{Complex ca;Complex cb(1, 2);Complex cc = Complex(3, 4);Complex cd{ 5,6 };Complex ce();//是否可以构造对象return 0;
}
运行结果:
常对象只能调用常方法,而不能调用不同方法;普通对象既可以调用普通方法(优先选择),也可以调用常方法。
更多推荐
C++:对象成员方法的使用
发布评论