【新手】C++类中定义函数的问题
本帖最后由 zooo 于 2016-1-24 16:46 编辑当函数的形参和类中变量的名字相同时,就无法给属性赋值,为什么会出现这种情况?
类中的函数是如何对类的成员进行操作的?
#include <iostream>
class Car
{
public:
std::string color;
std::string engine;
int liter;//油量
int wheel;
void setColor(std::string color);
void setEngine(std::string eng);
void setWheel(int wel);
};
void Car::setColor(std::string /*calr*/color)
{
color = color;
//color = calr;
}
void Car::setEngine(std::string eng)
{
engine = eng;
}
void Car::setWheel(int wel)
{
wheel = wel;
}
int main()
{
Car mycar;
mycar.setColor("Black");
mycar.setEngine("V8");
mycar.setWheel(4);
std::cout<<"Color is:"<<mycar.color<<"\n";
std::cout<<"Engine is:"<<mycar.engine<<"\n";
std::cout<<"The num of wheel:"<<mycar.wheel<<"\n";
return 0;
}
运行结果
void Car::setColor(std::string /*calr*/color)
{
color = color;
//color = calr;
}
你觉得这里的color 应该指这个成员函数的形参color还是数据成员color?通过你的实验证明了color = color;
这句的两个color都是形参color,这时要使用数据成员color只能用
this->color = color;也就是说this->color是指数据成员color
页:
[1]