类和对象

类和对象

def:类是具有相似的内部状态的和行为的集合;(类是面向对象的基础)

类的定义

class <ClassName>
{
private:
public:
}

class:类说明的关键字:
:类名;

类的访问控制

共有成员:public:在程序的任何位置都可以正确的引用;
私有成员:private:只能被自身的成员引用;
保护成员:protect:只能在派生类的类体中引用;
友 元:friend

构造函数

构造函数的概念
C++不允许在类的成员定义的时候为他们初始化,但是在定义之后一一初始化显的很繁琐,因此构造函数用来解决类的初始化的问题。
构造函数的名称与类的名称一样,主要的功能是为对象分配空间以及完成对象的初始化。构造函数不能有返回值,不能有return语句。
构造函数的声明和定义
class complex
{
    private:double real, imag;    //私有成员
    public:                      //公有成员
    complex(double real=0.0,double imag=0.0); //构造函数申明
    ~complex();//析构函数
    double c();//成员函数
    void  friend disp(complex *p);//友元函数
};

构造函数定义

complex::complex(double r,double i)
{
    real = r;
    imag = i;
}
构造函数的调用

一般在定义对象的时候调用构造函数完成独享的初始化。

complex ss(3, 4);
构造函数的的参数

构造函数可以不带参数;
也可以带默认参数;

拷贝构造函数

析构函数

析构函数是一种特殊的成员函数,被申明为公有的成员函数。不同的是,析构函数的作用是释放分配给对象的内存空间。
注意点:
1>析构函数的名字与类相同,在前面加“~”:
2>析构函数不带参数;没有返回值;
3>撤销独对象时,系统自动调用析构函数

~complex();//析构函数申明
complex::~complex()//析构函数
{
    cout << "释放空间"<<endl;
}

友元

友元与普通的成员函数不同,他不是类肚饿成员函数;但是他可以引用类的成员;

友元函数

如果友元是一个函数,叫做友元函数;

友元类

如果是一个类,则叫做友元类;

友元成员

如果一个类的成员函数是一个类的有友元函数,则这个函数为友元成员

void  friend disp(complex *p);//友元函数申明
void disp(complex *p)        //友元函数定义
{
    cout << p->real << "+" << p->imag << "i";
}
disp(&ss);               //友元函数引用

代码

// 类和对象.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream> 
using namespace std;
class complex
{
    private:double real, imag;    //私有成员
    public:                      //公有成员
    complex(double real=0.0,double imag=0.0); //构造函数 
    ~complex();//析构函数
    double c();//成员函数
    void  friend disp(complex *p);//友元函数
};
complex::complex(double r,double i)//构造函数 
{
    real = r;
    imag = i;
}
complex::~complex()//析构函数
{
    cout << "释放空间"<<endl;
}
double complex::c()//成员函数
{
    double n= real*real + imag*imag;
    return n;

}
void disp(complex *p)//友元函数
{
    cout << p->real << "+" << p->imag << "i";
}

class A
{
private:

public:
    int t;
    void inits(int n)
    {
        t = n;
    }
};
class B :public A
{

private:

public:
    int s;
    void initt(int n)
    {
        s = n;
    }
};


int _tmain(int argc, _TCHAR* argv[])
{
    complex ss(3, 4);
    cout << endl;
    cout<<ss.c();
    cout << endl;
    disp(&ss);


    B ob;
    ob.inits(15);
    ob.initt(51);
    cout << ob.s << "  " << ob.t << endl;
    return 0;
}

对象

def:对于一个具体的类,它具有多个具体的个体,这就是对象;也就是说,类是对象的抽象,对象是类的具体化;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值