首先你要实现学了C,然后C++就相当于你会了一半。
C++是带类的C,目的自然是提高开发效率。
C,C++使用一个编译器来编译,所以C++并没有独立的编译器,只是有了自己的编译方式。
C++是一个面向对象(OOP)的编程语言,理解C++,首先要理解**类(class)和对象(object)**这两个概念。
- 其中C++中的类可以看成C语言中的结构体,只不过其成员不仅仅可以是变量,还可以是函数。
- 由类定义出来的变量,有特定的称呼叫做对象。
C语言的代码
#include <stdio.h>
//定义结构体 Student
struct Student{
//结构体包含的成员变量
char *name;
int age;
float score;
};
//显示结构体的成员变量
void display(struct Student stu){
printf("%s的年龄是 %d,成绩是 %f\n", stu.name, stu.age, stu.score);
}
int main(){
struct Student stu1;
//为结构体的成员变量赋值
stu1.name = "小明";
stu1.age = 15;
stu1.score = 92.5;
//调用函数
display(stu1);
return 0;
}
C++的代码
#include <stdio.h>
//通过class关键字类定义类
class Student{
public:
//类包含的变量
char *name;
int age;
float score;
//类包含的函数
void say(){
printf("%s的年龄是 %d,成绩是 %f\n", name, age, score);
}
};
int main(){
//通过类来定义变量,即创建对象
class Student stu1; //也可以省略关键字class
//为类的成员变量赋值
stu1.name = "小明";
stu1.age = 15;
stu1.score = 92.5f;
//调用类的成员函数
stu1.say();
return 0;
}
namespace:命名空间
- 为解决合作开发时的命名冲突
:: 域解析操作符
- 在C++用来指明要使用的空间命名
- 除了直接使用域解析操作符,还可以采用 using 关键字声明
在代码的开头用using声明了 Li::fp,它的意思是,using 声明以后的程序中如果出现了未指明命名空间的 fp,就使用 Li::fp;但是若要使用小韩定义的 fp,仍然需要 Han::fp。
C++ 引入了命名空间的概念,计划重新编写库,将类、函数、宏等都统一纳入一个命名空间,这个命名空间的名字就是std。std 是 standard 的缩写,意思是“标准命名空间”。
在编写 C++ 程序时,如果需要使用输入输出时,则需要包含头文件iostream,它包含了用于输入输出的对象,例如常见的cin表示标准输入、cout表示标准输出、cerr表示标准错误。
bool类型:它一般占用 1 个字节长度。bool 类型只有两个取值,true 和 false:true 表示“真”,false 表示“假”。
内联函数inline:对比较短的并且调用次数多的函数,放在函数定义处 //非强制使用
C++函数的默认参数详解
- 所谓默认参数,指的是当函数调用中省略了实参时自动使用的一个值,这个值就是给形参指定的默认值。
- C++规定,默认参数只能放在形参列表的最后,而且一旦为某个形参指定了默认值,那么它后面的所有形参都必须有默认值