关系表达式中的注意问题—总结钱能C++

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/smallgyy/article/details/8031754

关系表达式中的注意问题—总结钱能C++

1)注意“=”“==”的区别

“=”是赋值运算符,用来连接成赋值表达式,它的值是所赋的值。

“==”是关系运算符,用来连接关系表达式,它的值是真(1)或假(0);

相等比较与赋值操作之所以容易搞错,是因为它们都有值,都能作为条件。

如果将他们放入if条件中,成为条件表达式,则其执行的情况为:

 


不要忽视编译结果中的warning(警告)提示信息。

C++编译器在应该出现条件表达式的位置上,如果遇到赋值表达式会发出一个警告。警示你的条件表达式可能有潜在的错误。

要培养不放过任何一个警告的习惯,否则难免搞错的“=”“==”将对你的程序造成实质性的伤害。

2)作为条件表达式,测试表达式不等于零与表达式本身等价。

if(x!=0) cout<<x;   等价于    if(x) cout<<x; 

3)测试条件表达式等于0与表达式的否定等价

if(x==0) cout<<x;   等价于    if(x)cout<<x; 

4)相等测试的否定与不相等测试等价

if(!(x==9)cout<<x;   等价于   if(x=9)cout<<x; 

5)注意不等式连写的错误 

   数学中可用 a<b<c

  C++ a<b&&b<c

展开阅读全文

钱能c++问题

08-17

//===============rn//savings.hrn//===============rn#ifndef HEADER_SAVINGSrn#define HEADER_SAVINGSrn//----------------------rn#include rnusing std::string;rn//---------------------rnclass Savingsrn string acntNumber;rn double balance;rnpublic:rn Savings(string acntNo,double balan=0.0);rn void deposit(double amount)balance+=amount;rn double getBalan()constreturn balance;rn void display()const;rn void withdrawal(double amount);rn;//--------------------------rn#endifrn//=================rn//savings.cpprn//=================rn#includern#include"savings.h"rn//-------------------rnSavings::Savings(std::string acntNo, double balan)rn:acntNumber(acntNo),balance(balan)rn//----------------------------------rnvoid Savings::display()constrn std::cout<<"savings Account:"+acntNumber+"="<rnusing std::string;rn//------------------rnenum REMITremitByPost,remitByCable,other;rn//--------------------rnclass Checkingrn string acntNumber;rn double balance;rn REMIT remittance;rnpublic:rn Checking(string acntNo,double balan=0.0);rn void display()const;rn void deposit(double amount)balance+=amount;rn double getBalan()constreturn balance;rn void withdrawal(REMIT re)remittance=re;rn;//------------------rn#endifrn//============rn//checking.cpprn//==============rn#includern#include"checking.h"rn//----------------rnChecking::Checking(string acntNo,double balan)rn:acntNumber(acntNo),balance(balan),remittance(other)rn//--------------rnvoid Checking::display()constrn std::cout<<"Checking Account:"+acntNumber+"="<rnusing namespace std;rn#include"savings.h"rn#include"checking.h"rn//--------------------rnint main()rn Savings s1("3277",3000),s2("3279",5000);rn Checking c1("888"),c2("398",10000);rn s1.deposit(100);rn c1.deposit(2000);rn s2.withdrawal(2500);rn c2.withdrawal(1555.5);rn s1.display();rn c1.display();rn system("pause");rn return 0;rnrn我照着书上抄还是出现问题rn1>------ 已启动生成: 项目: f1209, 配置: Debug Win32 ------rn1>正在编译...rn1>checking.cpprn1>d:\练习\书上列题\f1209\f1209\checking.cpp(13) : error C2511: 'void Checking::withdrawal(double)' : overloaded member function not found in 'Checking'rn1> d:\练习\书上列题\f1209\f1209\checking.h(12) : see declaration of 'Checking'rn1>f1029.cpprn1>d:\练习\书上列题\f1209\f1209\f1029.cpp(16) : error C2664: 'Checking::withdrawal' : cannot convert parameter 1 from 'double' to 'REMIT'rn1> Conversions between enumeration and floating point values are no longer allowedrn1>Generating Code...rn1>生成日志保存在“file://d:\练习\书上列题\f1209\f1209\Debug\BuildLog.htm”rn1>f1209 - 2 个错误,0 个警告rn========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========rnrn说是double类型不能转换成枚举类型rn这样要怎么修改,,用的编译器是vc2005rn 论坛

没有更多推荐了,返回首页