C++ 与 C语言 区别
- C++ 面向对象、标准特性; C 面向过程,函数+结构体
- C++可以运行C语言,反之就不行
- 85%用 C++ 去写
1、C语言的标准支持:#include<stdio.h>
2、C++标准支持:#include<iostream>
C++
- 命名空间 (相当于Java内部类)
using namespacing std; /
- 前面引入了命名空间,后面可以省略,eg.
std:cout<<"C++语言"<<std:endl;
可以简写为
cout<<"c++语言学习"<<endl
-
endl(换行) 相当于 \n
-
<< 是操作符重载,具体实现如下:【不是数学里边的运算】
cout<<"字符"<<endl;
- 换行也可以用\n
cout<<"铁头功\n"
<<"金刚腿\n"
<<"铁布衫\n";
常量
- C语言的常量是个假常量,用指针可以改
int main(){
const int number = 100;
int *numP = &number;
*numP = 1000;
printf("%d\n",number);//1000 值已经修改了
return 0;
}
- C++语言的常量是真常量,不能修改
const int number = 100;
//int *numP = &number; 编译的时候 就会报错
//*numP = 1000;编译的时候 就会报错
printf("%d\n",number);//1000 值已经修改了
引用
- 互换两个数
1、指针取地址
void numberChange(int * number1,int * number2){
int temp = 0;
temp = * number1;
*number1 = * number2;
*number2 = temp;
}
int main(){
int number1 = 10;
int number2 = 20;
numberChange(&number1,&number2);
return 0;
}
原理:
image.png
2、C++ 的引用 互换
void numberChange2(int & number1, int & number2){
int temp = 0;
temp = number1;
number1= number2;
number2 = temp;
}
int mian(){
int number1 =10;
int number2 = 20;
numberChange2(number1,number2);
return 0;
}
原理图
image.png3、常量引用
- const Student & student
- 不能修改其中的变量
typedef struct {
char name[20];
int age;
}Student;
image.png
4、函数重载
-
C语言不支持函数重载
-
C++ 支持
using name
image.png -
建造者设计模式
-
规范写法
1、要有头文件:.h .hpp ,实现文件:.c .cpp
2、头文件只写申明不写实现
#include<iostream>
using namespace std;
class Student{
private :
char * name;
int age;
public:
void setAge(int age);//声明函数
void setName(char *age);
int getAge();
char * getName( );//声明函数
}
具体实现
.c .cpp
#include "Student.h" //引入头文件
void Student::setAge(int age){
this->age = age;
}
void Student::setName(char * name){
this->name = name;
}
Student * student1;//栈空间
student1.setAge(99);
student1.setName("lisa");
cout<<"name:"<<student1.getName()<<",age:"<<student1.getAge()<<endl;
//堆空间
Student * student2 = new Student();
student2 ->setAge(80);
student2->setName("lisa");
delete student2;//必须手动释放对象student2
//不能用free(student2)
网友评论