目录
C++相比于C增加的标识符
C++在命名规则上的改变
C++数据类型的改变
小结
以下颜色为彩色的就是C++增加的标识符!!!!
这都是我刚从C语言学完转C++的认为增加的哈(不能误人子弟)
C++的命名很有讲究对大小写很重视,就比如标识符这个temp和Temp是完全不同的标识符,所以在C++的命名过程中为了避免混淆,应该使用不同的变量名而不是大小写。
多了一个类名的概念:
class Student;//这就叫类名
下面的代码看不看得懂无所谓,以后会深入讲解!
//定义类
class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
toString() {
return '(' + this.x + ', ' + this.y + ')';
}
}
String name;(这个String后面会提到,新来的,不用管)
重大的改变:
1.变量和参数用小写字母的单词开头,若由多个单词组成则后面单词首字母大写,变量名推荐:
(名词)或(形容词加名词)的形式
例子:int key;
double newHeight;
2.类名和函数名以大写字母开头的单词组合而成,全局函数名字推荐使用(动词)或(动词+名词)动宾词组的形式。类的成员函数应该去使用动词。为什么成员函数不用名词加动词?不嫌麻烦吗哈哈,省略的名词就是这个对象本身。
例子:class student;
void SetStudent(int id ,String name)//函数名
3.常量全采用大写字母,用下滑线分割单词形式,例如:
const double PI=3.1415;//常量定义,注意注意这不是常变量
const int MAX_LENGTH=100;
以下是一个大佬的博客(描述const在C和C++的不同)好不容易找到!大家康康挺好的哈!!
https://blog.csdn.net/KingOfMyHeart/article/details/114334878
4.静态变量加前缀s_(表示static)例如static s_number;全局变量加前缀g_(代表global)例如int g_length;类的数据成员加前缀m_(代表member)member也就是成员的意思,为啥这么麻烦?
避免与成员函数的参数同名,造成混淆。
例子:
底下的代码不用特别明白,意思就是,防止参数名和成员名一样了,可以理解了吗佬们!
void Student::SetStudent(int id,String name)
{
m_id=id;//数据成员进行赋值
m_name=name;
}
1.在原来什么int啥的的基础上添加的bool(布尔)类型
如果整形值为0,布尔值为假!
如果整形值为1,布尔值为真!
例子:
main()
{
bool flag=ture;//定义bool变量赋值为ture
int num=1;
if(flag==num)//一比果然相等
cout<<"相等"<
2.const定义的常量和常变量在上面那个大佬的博客中有介绍(再次感谢大佬)。
3.C++的类型转换相比于C来说隐式转换都是具有且没有改变的(什么你跟我说你不知道什么是隐式转换就是那个char short变int变unsigned变long变double,float也变double的那个)
意思就是低级的和高级的类型运算自动变高级。例子一个int和float的运算就会变成float。
这不是重点!!!
重点是在C++中有了显式转换,最古老的显式转换其实就是C语言的强制类型转换,
C++通过引进4个新的类型转换操作符克服了C语言类型转换的特点,这4个操作符是
static_cast const_cast dynamic_cast reinterpret_cast
static_cast在功能上基本和C语言风格类型转换一样强大,含义也是一样的,但是它有功能上的限制,const_cast用于类型转换掉表达式中const或volatileness属性,dynamic_cast被用于安全得沿着类的继承关系向下进行类型转换,reinterpret_cast特意用于底层的强制转型。
例子:
simplesort程序:
#include
using namespace std;
int main()
{
int firstNumber,secondNumber;//定义两个整形变量
firstNumber=5;
secondNumber=28;
double result =static_cast (firstNumber)/secondNumber;
//定义双精度变量result并赋值
//这个static_cast将firstNumber强制转换为double
//也可以用语句double result =(double)firstNumber/secondNumber;来实现
cout <
这个static_cast和老版(double)就我现在看来几乎没差别。
4.字符串改变十分巨大!
C++字符串定义的一般形式:
String 变量名;
例子:string str;
string a="abcdefg";
字符串赋新值
以下是两种形式
str="abc";
str.assign("abc");
字符串的串联
str=a+b;
交换两个字符串的内容
a.swap(b);
在尾部添加字符
以下是两种形式
str+=a;
str.append(a);
插入字符
a.insert(1.b);在字符串a的第一个字符后面插入字符串b
删除字符
a.erase(2);删除字符串a的第二个字符后所有字符
删除所有字符
a.clear();
替换字符
a.replace(1,2,b);将字符串a中第一个字符后的2个字符用b字符串代替
比较字符串
a==b;
a!=b;
a<=b;
a>=b;
a.compare(b);//这个函数只判断相不相等,等于返回0
注意:比较字符串比较的是ASCII不是长度喔!佬们
返回字符数量
a.size();
a.length();
判断字符串是否为空
a.empty();空返回true否则返回false
将内容以字符数组形式返回
a.data();
返回某一个字串
a.substr(2);获取字符串a后第二个字符后所有字符为子串
a.substr(1,3);获取字符串a后第一个字符后3个字符为子串
字符串非常重要希望读者好好看看。
佬们如果看到这那真是感激不尽了,在本文中我没提到的变化那默认为没有变化就好(帮大家节省时间),如果发现有变化的欢迎评论补充,有什么意见随时提,希望大家一起继续变好!!(看到这了点个赞吧?下次一定!nonono!)