C++中赋值=和相等==符号与数学中=区别
“=”这个是赋值符号,“==”这个是用来判断相等符号。相信刚学计算机语言时都会有些不习惯。
数学中等号“=”其实有两个意义
“=”这个是赋值符号,“==”这个是用来判断相等符号。相信刚学计算机语言时都会有些不习惯。
数学中等号“=”其实有两个意义
如果b是a的另一个名字(例如,已被初始化为a的引用),那这也是对自己赋值,
虽然表面上看起来不象。这是别名的一个例子:同一个对象有两个以上的名字。在
本条款的最后将会看到,别名可以以大量任意形式的伪装出现,所以在写函数时一
定要时时考虑到它。
说明了如果没写赋值运算符的话,编译器就会为你生成一个,条款11则说明了为什么你会经常不喜欢编译器为你生成的这个赋值运算符,所以你会想能否有个两全其美的办法,让编译器生成一个缺省的赋值运算符,然后可以有选择地重写不喜欢的部分。这是不可能的!只要想对赋值过程的某一个部分进行控制,就必须负责做赋值过程中所有的事。
string &operator=(const string &s);//把字符串s赋给当前字符串
string &assign(const char *s);//用c类型字符串s赋值
string &assign(const char *s,int n);//用c字符串s开始的n个字符赋值
string &assign(const string &s);//把字符串s赋给当前字符串
因为这将降低类型系统的安全性