c++ 类的定义和使用
来源:互联网 发布:axurerp7.0破解版mac 编辑:程序博客网 时间:2024/06/06 04:31
#include "stdafx.h"#include <iostream>#include <string>using namespace std;class A{private: int n2; int n1;public: A() :n2(34), n1(n2+1) {} void Print() { cout << "n1:" << n1 << ", n2: " << n2 << endl; }};int main(){ A a; a.Print(); getchar(); return 1;}
对上面代码稍微做调整: 将n1和n2两个变量定义的顺序互换一下
#include "stdafx.h"#include <iostream>#include <string>using namespace std;class A{private: int n1; int n2;public: A() :n2(34), n1(n2+1) {} void Print() { cout << "n1:" << n1 << ", n2: " << n2 << endl; }};int main(){ A a; a.Print(); getchar(); return 1;}
打印结果:
由此可以总结: 构造函数中,变量初始化的顺序,是以变量定义的顺序来定的,而不是简单的以构造函数中变量出现的顺序来定的
还可以使用有参的构造函数:
#include "stdafx.h"#include <iostream>#include <string>using namespace std;class A{private: int n1; int n2;public: A(int k1,int k2) :n2(k1), n1(k2) {} void Print() { cout << "n1:" << n1 << ", n2: " << n2 << endl; }};int main(){ A a(78,97); a.Print(); getchar(); return 1;}
打印结果:
下面对上面进行改造一下:
#include "stdafx.h"#include <iostream>#include <string>using namespace std;class A{private: int n1; int n2;public: A(int k1) :n2(k1), n1(n2) {} void Print() { cout << "n1:" << n1 << ", n2: " << n2 << endl; }};int main(){ A a(115); a.Print(); getchar(); return 1;}
打印结果:
通过最后一个例子,再次证明,变量初始化的顺序是严格按照各个变量定义的先后顺序来的,而不是简单的依据各变量在构造函数中出现的先后顺序来定的
下面两种写法是一个意思:
写法一:
public: A(int k1,int k2) { n1 = k1; n2 = k2; }
写法二:
public: A(int k1,int k2) :n1(k1),n2(k2){}
FR:海涛高软(hunk Xu)
阅读全文
0 0
- C/C++,指针的定义和使用
- Object-c 对象的使用和定义
- <C++>10.对象的定义和使用
- C/C++]可变参函数的定义和使用【转】
- C 的类和类的定义
- Object C 类的定义和实现
- Objective-C类的定义和实现
- c++/MFC类的声明和定义
- 类和对象的定义和使用
- C语言宏定义##连接符和#符的使用
- C语言宏定义##连接符和#符的使用
- C语言宏定义##连接符和#符的使用
- C语言宏定义##连接符和#符的使用
- C语言宏定义##连接符和#符的使用
- C语言宏定义##连接符和#符的使用
- C语言宏定义##连接符和#符的使用
- C语言宏定义##连接符和#符的使用
- C语言宏定义##连接符和#符的使用
- 查看38译码器的芯片手册
- 版本控制工具的发展史
- Node.js 概览
- 正确的表白方式(正则表达式)
- opencv 两幅图像直接相减
- c++ 类的定义和使用
- centos 7配置阿里Yum源
- 关于apriori算法中置信度、支持度怎么理解的问题
- CUDA排列组合整数
- 究竟什么是面向对象?
- 构造函数
- 欢迎使用CSDN-markdown编辑器
- 【maven】--依赖机制
- 剑指offer—从上往下打印二叉树