C++第二节(1):public和private、初始化列表、函数重载
来源:互联网 发布:域名年费多少钱 编辑:程序博客网 时间:2024/06/05 00:23
public和private、初始化列表、函数重载
1、初始化列表:
1.1 在构造函数函数头,对类的成员变量进行初始化
1.2 :成员变量(赋给成员变量的值){} 赋给成员变量的值:形参或常数
2、重载函数:
2.1函数名一样,参数列表不同(参数类型或参数个数不同)
2.2 仅仅返回值不同是不可以的
A、public和private
#include <iostream> //public和privateusing namespace std;class Student{private: int num;public: char *name; Student(); void setValue(int a, char *b); int getNum(); char * getName(); void print();};Student::Student(){ num = 000; name = "小强";}void Student::setValue(int a, char *b){ num = a; name = b;}int Student::getNum(){ return num;}char * Student::getName(){ return name;}void Student::print(){ cout << name << endl; cout << num << endl;}int main(){ Student a; //a.name ="小明"; //公有成员变量,可以使用这种形式访问。 //a.num = 123; //私有成员变量,只能通过公有成员函数才可以访问 a.setValue(123456, "小红"); a.print(); cout << a.getNum() << endl; cout << a.getName() << endl; return 0;}B、默认、非默认、初始化列表
Thing.h
#ifndef __C__No727Class__Thing__#define __C__No727Class__Thing__#include <iostream>using namespace std;class Thing{public: //Thing(); 默认构造函数,不带默认值,不能传参 Thing(int a = 10, int b = 20, int c = 30); //带默认值的默认构造函数,可以传参 //Thing (int m, int n, int p); //非默认构造函数,自定义的构造函数,传3个参数 ~Thing(); void printThing();private: int x; int y; int z;};#endif /* defined(__C__No727Class__Thing__) */Thing.cpp
#include "Thing.h"//Thing::Thing() 对无参数的默认构造函数进行实现,初始化//{// x = 10;// y = 20;// z = 30;//}//Thing::Thing(int a, int b, int c) //对带默认值的默认构造函数进行实现//{// x = a;// y = b;// z = c;//} //与下面使用初始化列表的语句等价Thing::Thing(int a, int b, int c):x(a), y(b), z(c) {};void Thing::printThing(){ cout << "x = " << x << "y = " << y << "z = " << z << endl;}Thing::~Thing(){ cout << "~~~" << endl;}main.cpp
#include "Thing.h"int main(int argc, const char * argv[]){ Thing t; t.printThing(); Thing s(1); s.printThing(); Thing r(1, 2); r.printThing(); Thing v(1, 2, 3); v.printThing(); Thing *y = new Thing(5, 5, 5); //类类型指针y,指向new的堆空间,堆空间里面是一个对象 (*y).printThing(); //访问方式(*y).和y -> delete y; //手工回收内存,把new的堆空间收回,即析构堆空间的对象,此时调用析构函数 return 0;}C、函数重载
Overload.h
#ifndef __C__No727Class__Overload__#define __C__No727Class__Overload__#include <iostream>using namespace std;class Overload{private: int x; int y; int z;public: Overload(); //无参数的默认构造函数 Overload(int a, int b, int c); //自定义函数,下面两个函数是对该函数的重载 Overload(int a, int b); Overload(int a); void print();};#endif /* defined(__C__No727Class__Overload__) */Overload.cpp
#include "Overload.h"Overload::Overload(){ x = 75; y = 99; z = 66;}Overload::Overload(int a, int b, int c){ x = a; y = b; z = c;}Overload::Overload(int a, int b){ x = a; y = b;}Overload::Overload(int a){ x = a;}void Overload::print(){ cout << "x = "<< x << " y = " << y << " z = " << z <<endl;}main.cpp
<pre name="code" class="cpp">#include "Overload.h"int main(){ Overload t; //默认值 t.print(); Overload s(1); //只传递第一个值,其他值自动置为0 s.print(); Overload r(1, 2); r.print(); Overload v(1, 2, 3); v.print(); Overload a; a = t; //对象的赋值 a.print(); a = v; a.print(); return 0;}
0 0
- C++第二节(1):public和private、初始化列表、函数重载
- 用private和public封装函数
- public,private,protected 区别和作用(C++)
- public,private,protected 区别和作用(C++)
- C++-public,protected,private
- 【C++】public protected private
- C++private,protected,public。
- 构造函数初始化列表(C++)
- swift学习记录(private和public)
- public、protected和private
- public、protected和private
- public和private注释
- public、private和protected
- 菜鸟学习c++—实现系统权限管理功能(类的public和private应用)
- 【编程语言】c++--private、protected和public的区别
- C#---public-private-protected-internal
- objective-c @private @protected @public
- 初始化列表和构造函数
- poj2559 Largest Rectangle in a Histogram
- SERVER1 ERROR
- poj3463Sightseeing(最短路条数+次短路条数)
- margin:auto实现绝对定位元素的水平垂直居中
- 多媒体文件、embed、背景音乐bgsound
- C++第二节(1):public和private、初始化列表、函数重载
- Spring的依赖注入(DI)和控制反转(IOC)
- 【cogs240】数列操作【线段树】
- 创业导师李开复:硬件创业的明日之星在中国
- MFC里面ON_COMMAND和ON_MESSAGE的区别
- HDMI之EDID字段解析
- jquery1.7升级到jquery1.3之后的live怎么使用
- ASP.NET常见内置对象(一)
- ORACLE-014:oracle中查看DBLink密码