C++ 與 C語言 區(qū)別
- C++ 面向?qū)ο?、標準特性?C 面向過程,函數(shù)+結(jié)構(gòu)體
- C++可以運行C語言,反之就不行
- 85%用 C++ 去寫
1、C語言的標準支持:#include<stdio.h>
2、C++標準支持:#include<iostream>
C++
- 命名空間 (相當于Java內(nèi)部類)
using namespacing std; /
- 前面引入了命名空間,后面可以省略,eg.
std:cout<<"C++語言"<<std:endl;
可以簡寫為
cout<<"c++語言學習"<<endl
endl(換行) 相當于 \n
<< 是操作符重載,具體實現(xiàn)如下:【不是數(shù)學里邊的運算】

image.png
cout<<"字符"<<endl;
- 換行也可以用\n
cout<<"鐵頭功\n"
<<"金剛腿\n"
<<"鐵布衫\n";
常量
- C語言的常量是個假常量,用指針可以改
int main(){
const int number = 100;
int *numP = &number;
*numP = 1000;
printf("%d\n",number);//1000 值已經(jīng)修改了
return 0;
}
- C++語言的常量是真常量,不能修改
const int number = 100;
//int *numP = &number; 編譯的時候 就會報錯
//*numP = 1000;編譯的時候 就會報錯
printf("%d\n",number);//1000 值已經(jīng)修改了
引用
- 互換兩個數(shù)
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.png
3、常量引用
- const Student & student
- 不能修改其中的變量
typedef struct {
char name[20];
int age;
}Student;

image.png
4、函數(shù)重載
C語言不支持函數(shù)重載
-
C++ 支持
using name
image.png 建造者設計模式
規(guī)范寫法
1、要有頭文件:.h .hpp ,實現(xiàn)文件:.c .cpp

image.png
2、頭文件只寫申明不寫實現(xiàn)
#include<iostream>
using namespace std;
class Student{
private :
char * name;
int age;
public:
void setAge(int age);//聲明函數(shù)
void setName(char *age);
int getAge();
char * getName( );//聲明函數(shù)
}
具體實現(xiàn)
.c .cpp
#include "Student.h" //引入頭文件
void Student::setAge(int age){
this->age = age;
}
void Student::setName(char * name){
this->name = name;
}
Student * student1;//??臻g
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)
