1.函数默认参数
和C不一样的是,在设置函数是的参数是可以被赋值的,且须满足至少是最后一个变量被赋值,如果传入参数时,该参数有被赋新值,则覆盖该值,若没有,则用定义函数的值
tips:当函数声明与实现分离时,声明有默认参数,则实现不添加默认参数(只能存在一个有默认参数)
void func(int a,int b,int c=10)
{
}
2.占位参数
占据一个位置,在函数调用时需要等量的参数传入
void func(int a,int)
3.函数重(chong)载
两函数具有相同函数名,但参数不同
tips:1.两函数作用域要相同 2.两函数函数名相同 3.函数参数类型不同,或个数不同,或顺序不同 4.返回值类型不同不可以作为函数重载的条件
void func(int a)
void func(int a,int b)
4.类和对象
#include<iostream>
using namespace std;
class Circle
{
public:
int r;
double calculate()
{
return 2 * 3.14 * r;
}
};
int main()
{
Circle c1;
c1.r = 5;
cout << "the answer is" << c1.calculate() << endl;
system("pause");
}
5.访问权限
a.公共权限 类内外都可以访问
b.保护权限 类内可以,外不行 子类可访问父类内容
c.私有权限 同上,子类不可访问父类内容
tips:默认为保护权限;通过加入读写函数实现权限控制
6.bool类型,要么是True要么是False
#include<iostream>
using namespace std;
int main()
{
bool result = true;
cout << "result= " << (int)result << endl;
cout << "!result= " << !result << endl;
system("pause");
return 0;
}
result= 1
!result= 0
请按任意键继续. . .
7.头文件
需要#pragma once
在h文件初
在函数实现时需要用::
告知来自于哪个类
自定义文件需要用“”来引用
#include<iostream>
#include"circle.h"
using namespace std;
int main()
{
Circle c1;
c1.r = 5;
cout << "the answer is" << c1.calculate() << endl;
system("pause");
}
#pragma once
#include<iostream>
using namespace std;
class Circle
{
public:
int r;
double calculate();
};
#include "circle.h"
using namespace std;
double Circle:: calculate()
{
return 2 * 3.14 * r;
}
8.构造函数
类名(){}
#include<iostream>
#include"circle.h"
using namespace std;
int main()
{
Circle c1;
c1.r = 5;
cout << "the answer is" << c1.calculate() << endl;
system("pause");
}
#pragma once
#include<iostream>
using namespace std;
class Circle
{
public:
Circle(void);
int r;
double calculate();
};
#include "circle.h"
using namespace std;
double Circle:: calculate()
{
return 2 * 3.14 * r;
}
Circle::Circle(void)
{
cout << "构造函数调用" << endl;
}
构造函数调用
the answer is31.4
请按任意键继续. . .
用于创建对象时为对象的成员属性赋值(对象是类的实例)
tips:构造函数没有返回值,也不写void;函数名称与类名相同;构造函数可以有参数,因此可以发生重载;程序在调用对象时会自动调用构造,无需手动调用,而且只会调用一次
9.析构函数
~类名(){}
用于对象销毁前系统自动调用,执行一些清理工作
tips:没有返回值,也不写void;函数名称与类名相同,名称前加上~;析构函数不可以有参数,不可以重载;程序在对象销毁前自动调用且只会调用一次