小编gig*_*igi的帖子

std :: cin如何同时返回bool和它本身?

我正在读一本关于C++的书,它说如果我使用>>运算符,它会返回运算符左侧的对象,所以在这个例子中

std::cin >> value1;
Run Code Online (Sandbox Code Playgroud)

代码返回std::cin.

但是,如果我这样做

while(std::cin >> value1)
Run Code Online (Sandbox Code Playgroud)

我的代码将处于循环中,直到出现std::cin错误,因此必须表示运算符boolstd::cin未失败时返回true,在失败时返回false std::cin.

哪一个是它?

c++ cin

32
推荐指数
2
解决办法
3079
查看次数

"="运算符返回什么?

据我所知,C++从左到右工作.例如,如果我这样做:

std::cout << "output" << "stream";
Run Code Online (Sandbox Code Playgroud)

C++首先从最左边的东西(std :: cout)开始,然后是<<运算符,它取右边的字符串文字("输出")并将它放到运算符左边的对象(std :: COUT).然后C++返回运算符左侧的对象(std :: cout),然后继续代码,另一个<<运算符.

"="运算符返回什么?

如果我做

double wage = 5;
double salary = wage = 9999.99;
Run Code Online (Sandbox Code Playgroud)

我认为"="运算符只返回"="的左或右操作数.因此,根据我的逻辑,在工资初始化的行中,工资用工资值初始化,然后"="运算符返回工资或工资(比如工资),然后它将9999.99分配给工资,但工资是走了,应该保持5的价值.

但是当我在"工资"初始化之后检查"薪水"和"工资"的值时,两者的值都是9999.99.如果我应用与上面使用std :: cout相同的逻辑,那么应该只有一个变量,"salary"或"wage",值为9999.99

c++

7
推荐指数
1
解决办法
1867
查看次数

为什么只有在定义了类的情况下才能将数据成员指定为类类型?(摘自"C++入门"一书)

在"C++入门"一书中,有一节关于类声明和定义.我不明白这句话的一切:

只有在定义了类时,才能将数据成员指定为类类型.

我不明白这句话背后的逻辑.如何将数据成员指定为类类型,此操作的含义是什么?

c++ declaration definition incomplete-type

4
推荐指数
1
解决办法
156
查看次数

C++为什么这段代码不起作用?

vector<int> v = { 1,2,3,4,5 };
for (auto beg = v.begin(); beg != v.end();++beg)
{
    if (beg == v.begin())
        v.push_back(50);
}
Run Code Online (Sandbox Code Playgroud)

在运行时,它说:"矢量迭代器不可递增".

c++

-6
推荐指数
1
解决办法
154
查看次数

标签 统计

c++ ×4

cin ×1

declaration ×1

definition ×1

incomplete-type ×1