是给成员是赋值的
构造函数和类名相同,并i且没有返回值且不写void
构造函数在创建对象时,编译器会自动调用函数,无需手动调用
构造函数可以有参数,因此可以发生重载
构造函数的调用,在对象创建的过程中进行实现
#include<iostream>
#pragma once;
#include<string>
using namespace std;
class pointer{
int* P;
public:
pointer() {
cout << "构造函数" << endl;
}
pointer(int n) {
cout << "调用有参数的函数" << endl;
if (n > 0) {
P = new int(n);
}
if (n < 0) {
P = NULL;
cout << "数据不准确" << endl;
}
}
void print() {
if (P) {
cout << "打印p指向堆区的值" << *P << endl;
}
}
};
int main() {
pointer www(3);
www.print();
}
构造函数的两种分类方式:
有参构造和无参构造
三种调用方式:
括号法
显示法
隐私转换法
people a(1);//括号法
people b = people(1);//显示法
people c = 1;//隐式转换法:在此处会调用int类型的构造函数,将3转化为people类型的对象
people q;//调用无参构造函数
people s;//并不是括号法调用无参函数,会被编译器视为函数声明