首先,我之前只学过一点Java。自从我开始对C ++友好以来只有几天,所以请不要把这个问题这么简单,也不要降低我的问题的质量。
我制作了一个简单的源代码,如下所示:
#include <iostream>
using namespace std;
class Car {
public:
void setBrand(string name);
void setPrice(double price);
string getBrand();
double getPrice();
Car();
Car(string name);
Car(string name, double price);
private:
string name;
double price;
};
Car::Car() {
}
Car::Car(string name) {
name = name;
}
Car::Car(string name, double price) {
name = name;
price = price;
}
void Car::setBrand(string name) {
name = name;
}
void Car::setPrice(double price) {
price = price;
}
string Car::getBrand(void) {
return name;
}
double Car::getPrice(void) {
return price;
}
int main() {
Car car;
car.setBrand("Nissan");
car.setPrice(30000);
cout << "Brand: " << car.getBrand() << endl;
cout << "Price: " << car.getPrice() << endl;
return 0;
}
我想编写一个代码,以创建一个名为Car的类的空实例,稍后再设置字段值,然后在控制台上将其打印出来。
代码在编译过程中没有发生任何错误,但是我看到的结果与我的预期完全不同。它没有显示品牌名称,而且价格看起来甚至很奇怪,如下所示。
Brand:
Price: 6.95322e-310
有人帮我!确实非常感谢您。
您遇到的问题是用函数参数覆盖了成员名称。您可以使用this->
它来使其显式或以不同的方式命名该成员。
例如:
void Car::setBrand(string name) {
this->name = name;
}
或者:
void Car::setBrand(string new_name) {
name = new_name;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句