C ++:如何使getter和setter使用空的构造函数

马歇尔·李

首先,我之前只学过一点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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何编写C ++ getter和setter

在C#中使用getter和setter

如何为Objective-C NSArray使用getter和setter定义Swift协议

如何使用 Roslyn 在 C# 中忽略属性 Getter 和 Setter

如何从 Haskell 调用 C++ Setter 和 Getter

我应该使用构造函数getter和setter方法?

构造函数和 Getter 和 Setter 方法

使用C ++共享指针的别名构造函数和空的共享指针

C#6 getter和setter

纯C中的Getter和Setter?

C#:使用getter / setter shortand时,可以混合使用函数访问修饰符吗?

C ++构造函数和复制构造函数

如何在类构造函数中使用C ++ 11随机引擎和均匀分布?

C# 初学者:如何进行构造函数链接、覆盖和使用 :this / :base?

如何为 C 风格的字符串数组编写 Getter 和 Setter?

用于使用getter和setter存储全局std :: string标签的C ++策略

Swift为什么不像Java或C#那样使用getter和setter作为属性?

C#-在引用类型上使用私有setter和公共getter

使用反射动态创建类的getter和setter的C#动态委托

没有setter的C#属性-如何从构造函数中进行设置?

C++/C 项目中的 Getter 和 Setter?

构造函数和继承C ++

使用 Json Schema 的构造函数、getter 和 setter 生成 Javascript 类

使用C#和Autofac的构造函数注入模式

Getter和Setter函数帮助以及如何

如何访问 Object 的 getter 和 setter 函数?

构造函数中的Object.assign getter和setter

在C#中直接引用时,如何让类使用默认的getter / setter?

C ++ setter / getter在一个函数中?