gpt4 book ai didi

C++:返回类变量

转载 作者:太空狗 更新时间:2023-10-29 19:46:05 25 4
gpt4 key购买 nike

当我尝试使用一种方法返回一个私有(private)变量时,它的值似乎自对象被构造以来发生了变化。这是我的代码和输出。

主要.cpp

#include <iostream>
#include "coordinate.h"

using namespace std;

int main()
{
Coordinate c(1, 1);
cout << c.getX() << endl;

}

坐标.cpp

#include "coordinate.h"
#include <iostream>

using namespace std;

Coordinate::Coordinate(int x, int y)
{
x = x;
y = y;

cout << x << endl;

}

坐标.h

#ifndef COORDINATE_H
#define COORDINATE_H

class Coordinate
{
private:
int x;
int y;

public:
Coordinate(int x, int y);

int getX() { return x; }
int getY() { return y; }
};

#endif

Output

最佳答案

您的构造函数分配给它的参数而不是对象的私有(private)字段。使用初始化列表,或使用 this 明确限定赋值目标,或选择不同的参数名称:

Coordinate::Coordinate(int x, int y) : x(x), y(y) {
cout << x << endl;
}

Coordinate::Coordinate(int x, int y) {
this->x = x;
this->y = y;
cout << x << endl;
}

Coordinate::Coordinate(int xVal, int yVal) {
x = xVal;
y = yVal;
cout << x << endl;
}

关于C++:返回类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17915684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com