• 【学习笔记】C++再入门过程-2


    3 C++与C相比的增强

    3.1 全局变量增强

    // 告诉用户严谨定义
    int a = 10;//赋值,当做定义
    int a;//没有赋值,当做声明
    int main(){
    	printf("a:%d\n",a);
    	return 0;
    }//此代码在c++下编译失败,在c下编译通过,原因在于c++编译要求更严谨,这里a既定义又声明,不符合编译标准。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3.2 类型增强

    c++中所有的变量和函数都必须有类型。在C语言中,函数声明中没有说明其中的参数是什么类型,则可以是任意类型;没有写参数,代表可以传任意类型的实参。BUT,在c++中不行,如果函数没有参数,那么调用的时候不能传实参。

    3.3 更严格的类型转换

    在c++中要养成一种习惯,两个变量类型应该相同,如果两个变量类型不同怎么办,那就强制类型转换。在c++中多用引用,而不用指针。
    在c++,不同类型的变量一般是不能直接赋值的,需要相应的强转。

    3.4 结构体的增强

    c中定义结构体变量需要加上struct关键字,c++不需要。c中的结构体只能定义成员变量,不能定义成员函数。c++既可以定义成员变量,也可以定义成员函数。(结构体中的函数默认是共有类型)

    // 1.结构体中既可以定义成变量,也可以定义成员函数
    struct Student{
      string mName;
      int mAge;
      void setName(string name){ mName = name;}
      void setAge(int age){mAge = age;}
      void showStudent(){
      	cout<<"Name:"<<mName<<"Age:"<<mAge<<endl;
      }
    };
    //2.c++中定义结构体变量不需要加struct关键字
    void test01(){
      Student student;
      student.setName("John");
      student.setAge(20);
      student.showStuent();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    3.5 新增bool类型

    标准c++的bool类型有两种内建的常量true(转化为整数1)和false(转化为整数0)表示状态。这三个名字都是关键字。bool类型只有两个值,true(1值)、false(0值),bool类型占1个字节大小,给bool类型赋值时,非0值会自动转换为true(1),0值会自动转换false(0)

    void test(){
    	cout<<sizeof(false)<<endl;//显示bool类型占的字节大小
    	bool flag = true;//c语言中没有这种类型
    	flag = 100;//给bool类型赋值时,会自动进行转换
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.6 三目运算符

    c语言中的三目运算符a>b?a:b,返回的是a或者b的值。
    c++中三目运算符是a或b的引用(a或b的变量名)
    在程序执行过程中
    a=10;b=20;
    (a>b?a:b) = 100;c语言中会报错,c++中不会报错。

  • 相关阅读:
    硅谷(12)菜单管理
    win11 右键关闭显示更多选项 修改右键菜单
    在openSUSE-Leap-15.5-DVD-x86_64中使用钉钉dingtalk_7.0.40.30829_amd64
    mysql数据库的四种隔离级别
    CAN控制器的位同步过程
    app小程序手机端Python爬虫实战05-weditor的安装和初始化
    微前端(乾坤)使用记录
    3.k8s dashboard设置域名登录案例(ingress版本为1.3.1)
    jsp就业管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
    MySQL优化(四) binlog的应用
  • 原文地址:https://blog.csdn.net/weixin_41512747/article/details/124590755