C++第二节(1):public和private、初始化列表、函数重载

public和private、初始化列表、函数重载

1、初始化列表:

     1.1 在构造函数函数头,对类的成员变量进行初始化

     1.2 :成员变量(赋给成员变量的值){}       赋给成员变量的值:形参或常数

2、重载函数:

     2.1函数名一样,参数列表不同(参数类型或参数个数不同)

     2.2 仅仅返回值不同是不可以的

A、public和private

#include <iostream>    //public和private
using 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值