C++入门基础语法
2015-11-08 20:25
281 查看
#include <iostream> using namespace std;//使用std块,这样就不需要std::cout这样写了。 class A { public: A(int a,int b):x1(a),x2(b) { cout <<"class A a&b: " << a <<" & "<< b <<endl; cout <<"class A x1&x2: " << x1 <<" & "<< x2 <<endl; };//这里有没分号都可以 ~A(){}; int x2; private: int x1; }; class C { public: C(int a):x1(a),x2(4){};//构造函数 ~C(){};//析构函数 int x1; // friend void B::c_friend();不能在这friend,因为B类在后面还没定义声明 const int x2; static const float x3;//静态要放在类外面定义 void b_friend(); //不能在这里实现函数,因为在创建B类对象的时候,会有B类未声明错误。 //在class C前class B;声明,也不支持创建对象。所以放在了B类后面实现函数。 }; const float C::x3=3.14f;//注意还有个const常量标志 class B : public A { public: B(int a,int b,int c,int d):A(a,b),c1(c),x1(d){}//冒号语法赋值和传参,int d=1可设定默认参数,设默认参数的得放在后面。 ~B(){}; C c1;//相当于组合类,创建了C类对象,所以得放在前面先声明。 // int x2; /*如果没有重定义x2,输出的就是A类的x2,继承过来了。 而A类的x1就继承不了,私有的*/ void show() { cout <<"class B x1&x2: " << x1 <<" & "<< x2 <<endl; } friend void C::b_friend();//友元函数,调用private里的内容 private: int x1; }; void C::b_friend()//注意前面还有C::要不然B不认这个friend { B b1(1,2,3,4); cout <<"class B private x1 = " <<b1.x1<<endl; } int main(int argc, char const *argv[]) { B b1(1,2,3,4);//创建对象时,要传入构造函数需要的参,否则会报错 /* 创建对象后,会先调用父构造函数。 所以B类一定得有构造函数,除非父类没构造函数。 子类的构造函数给父类构造函数传实参 最开始的先传给父类构造函数。 */ b1.show(); cout << "class C x1&x2&x3= " << b1.c1.x1<<" & "<< b1.c1.x2 <<" & "<<b1.c1.x3<<endl; b1.c1.b_friend(); return 0; }
相关文章推荐
- C++智能指针
- C语言学习字符串和指针
- C语言产生一个大txt文件,并进行排序
- C++ 中使用dlopen加载动态库
- Beaglebone Black(4)C++编程控制GPIO基础
- 【C】【笔记】《C语言深度剖析》第七章 文件结构
- 【C】【笔记】《C语言深度剖析》第六章 函数
- 【C】【笔记】《C语言深度剖析》第五章 内存管理
- 【C】【笔记】《C语言深度剖析》第四章 指针和数组
- 【C】【笔记】《C语言深度剖析》第三章 预处理
- 【C】【笔记】《C语言深度剖析》第二章 符号
- 【C】【笔记】《C语言深度剖析》第一章 关键字
- 【C】【笔记】《C和指针》第16章 标准函数库
- C++中的IO类(iostream, fstream, stringstream)小结
- 【C】【笔记】《C和指针》 第六章 指针 第七章 函数 第八章 数组 第九章 字符串、字符和字节
- 《C++ primer》英文第五版阅读笔记(十二)——数组
- 【C】【笔记】《C和指针》 第一章 快速上手 第二章 基本概念 第三章 数据 第四章 语句 第五章 操作符和表达式
- 【C】【笔记】高质量C++编程指南
- 【C】【笔记】嵌入式C/C++语言精华文章集锦
- C++编程思想学习笔记---第13章 动态创建对象