例子就以我的车来说 :
车 保时捷 豪车名作为别名
对了,是辆玩具车~~ 因此需要用指向类成员为函数的指针来修改 车品牌为WanJuPinPai
#include <iostream>
using namespace std;
#include <string>
class Car
{
public:
string PinPai;
double JiaGe;
Car(string pinpai, double jiage)
{
this->PinPai = pinpai;
this->JiaGe = jiage;
}
void SetPinPai(string pinpai)
{
this->PinPai = pinpai;
}
string GetPinPai()const //这个const指限于成员
{
return PinPai;
}
private:
};
//Car::Car(string pinpai, double jiage)
//{
// this->PinPai = pinpai;
// this->JiaGe = jiage;
//}
//
int main()
{
string *pstr;
Car bsj("BaoShiJie", 200);
std::cout << bsj.PinPai << " " << bsj.JiaGe << "\n";
//指向类成员字符串的指针 其实就效果相当于给成员构造了一个别名
string Car::*haocheMing = &Car::PinPai;
double Car::*haoCheJia = &Car::JiaGe;
//输出豪车名 和 豪车价
std::cout << bsj.*haocheMing << " " << bsj.*haoCheJia << "\n";
//-----------------------------------------------------------------
//-----------------------------------------------------------------
//设置修改品牌的函数指针
void (Car::*pset)(string) = &Car::SetPinPai;
(bsj.*pset)("WanJuChePinPai"); //指针方式修改函数 并设置为玩具车
//设置获取品牌的函数指针
string(Car::*pget)()const = &Car::GetPinPai;
std::cout << (bsj.*pget)() << "\n"; //调用get函数指针的方式
}
输出
BaoShiJie 200
BaoShiJie 200
WanJuChePinPai
可以看出C++写的 理解可以 真TM折腾!!