面向对象编程在代码执行效率上绝对没有任何优势(C++语言效率没有C语言效率高)
C语言源文件后缀为.c
C++语言源文件后缀为.cpp
标准C语言的注释只能是/*.........*/
C++的注释可以用//
C语言要求必须在函数体的开始部分定义局部变量
C++可以在函数任何位置定义变量
C++语言中,增加了bool基本类型
C语言中用结构体定义变量时,//struct 结构体 变量名//
C++语言中struct可以省略
//C语言代码
#include<stdio.h>
int main()
{
//some code
}
//C++
#include<iostream>
using namespace std; //必须加上命名空间
int main()
{
//some code
}
//C语言
stdio.h
printf
scan
//C++
iostream
cout
cin
函数重载:
C++允许多个函数拥有相同的名字,但是函数参数列表不能相同
//求三个整数的最大值
int max(int a, int b, int c)
{
if(b>a) a=b;
if(c>a) a=c;
return a;
}
//求三个浮点数的最大值
double max(double a, double b, double c)
{
if(b>a) a=b;
if(c>a) a=c;
return a;
}
//求三个长整形数的最大值
long max(long a, long b, long c)
{
if(b>a) a=b;
if(c>a) a=c;
return a;
}
类和对象
C++中的类可以看成C语言中结构体Struct的升级
C语言代码
#include<stdio.h>
int main()
{
//定义结构体Student
struct Student
{
//结构体包含的变量
char *name;
int age;
float score;
};
//通过结构体来定义变量
struct Student Stu1;
//操作结构体的成员
stu1.name="小明“;
stu1.age=15;
stu1.score=92.5;
printf("%s的年龄是%d,成绩是%f\n",stu1.name,stu1.age,stu1.score);
return 0;
}
C++代码
#include<stdio.h>
int main()
{
//通过class关键字定义类
class Student
{
public: //类包含的变量
char* name; ??char name[200];
int age;
float score;
public: //类包含的函数
void say()
{
printf("%s的年龄是%d,成绩是%f\n",name, age,score);
}
};
//通过类来定义变量,即创建对象
class Student Stu1; //可以省略关键字class
//操作类的成员
stu1.name="小明“;
stu1.age=15;
stu1.score=92.5;
stu1.say();
return 0;
}
上文涉及C++中使用关键字 class 来定义类, 其基本形式如下
class 类名
{
public:
//公共的行为或属性
private:
//非公共的行为或属性
}
string类单独讲