1、C++的常量
c++中的常量是真的常量,如果放在C语言中,则可以通过指针修改,但是在C++中则会报错
//引入命名空间
using namespace std;
int main() {
//c++中的常量
const int number = 100;
//不能修改
// number = 200;
//在C语言中能修改
// int *number_P = &number;
// *number_P = 300;
cout << number << endl;
return 0;
}
2、C++中的引用
在C语言中,我们可以通过通过指针互换两个数,在C++中,可以通过引用互换两个数,int & number,可以表示引用类型
int number1 = 100;
int number2 = 200;
// changeNumberByC(&number1, &number2);
changeNumberByCpp(number1, number2);
cout << "number1 = " << number1 << " number2 = " << number2 << endl;
/**
* c语言通过指针互换两个数
* @param number1
* @param number11
*/
void changeNumberByC(int *number1, int *number2) {
int temp = *number1;
*number1 = *number2;
*number2 = temp;
}
/**
* cpp通过引用互换两个数
* @param number1
* @param number2
*/
void changeNumberByCpp(int &number1, int &number2) {
int temp = number1;
number1 = number2;
number2 = temp;
}
number1 = 200 number2 = 100
3、C++中的函数重载
和Java一样在C++中支持函数重载,并且支持在函数中增加默认参数这一点和Kotlin一样。C语言不支持函数重载
void add() {
cout << "add" << endl;
}
void add(int i) {
cout << "add:" << i << endl;
}
void d(int i,int j,int k = 100) {
cout << "add:" << i << endl;
}
4、没有名字的函数参数
没有名字的函数参数,作为后续拓展使用,源码中常常体现。
void del(int) {
cout << "del" << endl;
}
5、C++中的类、对象
- 创建类的方式
1、先创建头文件
头文件 ,只写声明,不写实现
//
// Created by DELL on 2022/7/28.
//
#ifndef C__01_STUDENT_H
#define C__01_STUDENT_H
// Student.h 头文件 只写声明,不写实现
class Student {
private://下面的代码(成员和函数),都是私有
char *name;
int age;
public://下面的代码(成员和函数),都是公开
void setName(char *name);
char *getName();
void setAge(int age);
int getAge();
};
#endif //C__01_STUDENT_H
2、创建实现文件
根据 Student.h 头文件 ,写实现
//
// Created by DELL on 2022/7/28.
//
#include "Student.h"
// 根据 Student.h 头文件 ,写实现
void Student::setAge(int age) {
// C++对象指向的是一个指针
// -> 调用一级指针的成员
this->age = age;
}
int Student::getAge() {
return this->age;
}
void Student::setName(char *name) {
this->name = name;
}
char *Student::getName() {
return this->name;
}
- 创建对象
1、普通创建对象方式
//C++创建对象的方式(栈空间)
Student student1;
student1.setAge(29);
student1.setName("daxiaa");
cout << "age = " << student1.getAge() << " name = " << student1.getName() << endl;
age = 29 name = daxiaa
2、通过指针的方式创建对象
通过指针的方式创建对象,需要注意使用new 关键字创建。访问对象的属性成员的时候使用->符号
//通过指针方式创建对象(堆空间)
Student *student2 = new Student();
student2->setAge(39);
student2->setName("大侠啊啊");
cout << "age = " << student2->getAge() << " name = " << student2->getName() << endl;
if (student2) {
delete student2;//必须手动释放堆空间的对象student2
student2 = NULL;//指向NULL的地址区域
}
age = 39 name = 大侠啊啊
C++创建对象的两种方式除了使用方式不一样之外,第一种是在栈内开辟内存空间,第二种则是在堆中开辟内存空间,因此第二种需要手动释放内存空间。
网友评论