说我有以下课程:
class Abc {
int id;
public:
int getID() { return id; }
int setID(int id) { this->id = id; }
};
Run Code Online (Sandbox Code Playgroud)
这有什么逻辑错误吗?我似乎得到了意想不到的结果(读取:id的错误值).我知道这不是编写getter的方法..但是在这段代码中仍然没有任何错误?
这是类声明:
class ClientConn {
static int num;
short pos;
sockaddr_in tcpAddress;
sockaddr_in udpAddress;
int connFD;
public:
ClientConn();
int getConnFD();
void setConnFD(int connFD);
void setPos(short pos);
short const& getPos();
void setUdpAddress(short port);
void setTcpAddress(sockaddr_in address);
void setUdpAddress(sockaddr_in address);
void setTcpAddress(short port, char* serverIP);
void setUdpAddress(short port, char * serverIP);
sockaddr_in const& getTcpAddress() const;
sockaddr_in const& getUdpAddress() const;
};
Run Code Online (Sandbox Code Playgroud)
这两个功能的定义如下:
int ClientConn :: getConnFD() {
return connFD;
}
void ClientConn :: setConnFD(int connFD) {
this->connFD = connFD;
}
Run Code Online (Sandbox Code Playgroud)
我使用setter将connFD的值设置为7,然后当我使用getter时,我得到值65534.
(我应该回答我的问题还是继续编辑我的帖子?我是新的)
Ebo*_*ike 11
几点说明:
编辑:既然你发布了你的代码,我会认为某些东西正在捣乱你的变量.你用的是什么编译器?内存断点是告诉你发生了什么的最快方法.假设这不是一个选项,请将代码撒上调试输出,显示变量的当前值并进行除法和征服,直到找到它被踩到的位置.
此外,您发布的新代码仍未显示任何实际用法.简单的测试程序会有所帮助.
int setID(int id) { this->id = id; }
Run Code Online (Sandbox Code Playgroud)
应该被替换
void setID(int id) { this->id = id; }
Run Code Online (Sandbox Code Playgroud)
你应该声明一个构造函数来初始化id的值.
| 归档时间: |
|
| 查看次数: |
738 次 |
| 最近记录: |