class getter rand variable
class getter rand variable
#include <iostream>
#include <cstdlib>
using namespace std;
class Passenger {
private:
int ticket ;
int half ;
public:
Passenger(int ticket=rand() % 2, int half=rand() % 2) { // Construct passenger
cout << "passenger was constructed with " << ticket << " ticket and " << half << " half ticket" <<endl;
}
~Passenger() {
cout << "passenger was destructed" <<endl;
}
int getTicket()const{
cout << ticket <<endl;
return ticket;
};
int getHalf()const{
return half;
};
};
int main(){
Passenger m;
m.getTicket();
}
getTicket
总是打印64而不是调用构造函数时打印的0或1。
我无法解决这个问题,我不知道Rand()
您正在为构造函数Passenger
的参数提供默认值,但是您没有初始化类属性票和一半。
您可能已经以默认值初始化了Passenger::Passenger
中的这些参数,但是除非将这些参数分配给函数成员,否则属性Passenger::ticket
和Passenger::half
将不会使用您似乎想要分配给它们的值初始化。
本质上,您应如下更新构造函数:
Passenger::Passenger(int ticket=rand() % 2, int half=rand() % 2) {
// Construct passenger
cout << "passenger was constructed with " << ticket << " ticket and " << half << " half ticket" <<endl;
this->ticket = ticket;
this->half = half;
}
您也可以使用以下给出的初始化列表。
class Passenger {
Passenger(int ticket=rand() % 2, int half=rand() % 2) : ticket(ticket), half(half) {}
... // Rest of the class definition
};
相关文章:
- C++ Singleton - Prevent ::instance() to variable
- 为什么我不能将 rand() 与数组的大小一起使用?
- 为什么新的随机库比std::rand()更好
- 为什么rand()的使用被认为是不好的
- 如何通过多类"Union variable" (sfml) 使用轮询事件
- C++使用 rand 定义函数语法
- 为什么 rand 不在我的代码中生成随机数?
- 将成员函数作为构造函数参数调用时出错 "Variable is not a type name"
- 为什么我会收到"Run-Time Check Failure #2 - Stack around the variable 'pr' was corrupted"错误?
- C++:寻找"returning address of local variable..."的更正
- 为什么 CWE 认为 rand() 具有潜在危险
- 在 c++ 中,rand() 在执行有调试和不带调试的程序时生成不同的结果
- C++ - 在我尝试制作一个简单的计算器时有一个"uninitialized local variable y used"警告
- Visual Studio Code "variable " u8 的 C/C++ 扩展名 " " 不是类型名称"
- C++ "Using Uninitialized Memory.. (variable name) "
- cudaMallocManaged for host-initiated variable
- Cppcheck "Reference to auto variable returned"失败的原因?
- Rand() 没有显示随机数,请帮助我了解出了什么问题:)
- Rand()大小写开关在多次迭代后运行到无穷大
- class getter rand variable