构造函数
来源:互联网 发布:新手程序员 私活 编辑:程序博客网 时间:2024/06/15 09:37
一、构造函数初始化
构造函数可以以列表的形式初始化成员变量:
MyClass::MyClass(int a, int b) :p_a(a), p_b(b)
{
}
也可以在函数体中赋值
MyClass::MyClass(int a, int b)
{
p_a = a;
p_b = b;
}
二、explicit关键字
//MyClass.h
#pragma once
class MyClass
{
private:
int p_a, p_b;
public:
MyClass(int a);
int Add();
};
//
//MyClass.cpp
#include"MyClass.h"
MyClass::MyClass(int a) :p_a(a)
{
}
int MyClass::Add()
{
return p_a *2;
}
//main.cpp 编译、执行都没问题
#include<iostream>
#include"MyClass.h"
using namespace std;
void fun(MyClass c1)
{
cout << c1.Add() << endl;
}
int main()
{
MyClass c(10);
cout << c.Add() << endl;
fun(c);
fun(50);//编译时发现可以初始化成类MyClass,所以没有问题
return 0;
}
但如果在声明构造函数前添加“explicit”关键字,则编译出错(只能在构造函数声明前添加,不能在定义时添加)
即public:
explicit MyClass(int a);
0 0
- 构造函数
- 构造函数
- 构造函数
- 构造函数
- 构造函数
- 构造函数
- 构造函数
- 构造函数
- 构造函数
- 构造函数
- 构造函数
- 构造函数
- 构造函数
- 构造函数
- 构造函数
- 构造函数
- 构造函数
- 构造函数
- 微信开发学习中...(一)
- mac安装Redis,Redis Desktop Manager
- 二分查找
- 块级元素及行内元素
- SpringBoot -- 集成Elasticsearch
- 构造函数
- 洛谷 PP3373【模板】线段树 2
- HTTP权威指南读书笔记一:HTTP简介
- Sum Problem
- 竞赛图结论学习小结
- 控制对文件的访问
- struts中出现Java.lang.NoClassDefFoundError解决办法
- 关于des加密的神坑
- Android 申请运行时权限 以camera为例