类与对象

一 定义类与对象

类是人为定义的一种数据类型,c++中,属性用数据的储存结构实现,称为类的数据成员;方法用函数实现,称为成员函数。

class是定义类的关键字且以分号结束类的定义语句。

public   声明公有成员

protect  声明保护成员

private 声明私有成员

class与struct的区别:class若不特别声明,则数据默认为私有,而struct默认为共有。

简单类:

class Date

{public:

void PrintDate()

Void satedate()

private:

int year,month,day

};

Date类中一共有三个私有数据成员 year month day。

成员函数可以定义在类的内部,也可以在类的外部用作用域区分符::来说明

如Date类的成员函数定义在类外

void Date::SetDate(int y,int m,int d)

{

     year=y;

     month=m;

     day=d;

}

成员函数有两个作用:一是操作数据成员,二是用于协同不同的对象操作。

访问对象成员:

   运算符“.”和"->"用于访问对象成员。

如:

#include<iostream>

using namespace std;

class Tclass

{ public:

                int x,y;

                void print() 

             { cout<<x<<","<<y;}

};

int main()

{Tclass test;

test.x=100;

test.y=200;

test.print();

}

this指针
---每个成员函数都有一个指针形参,它的名字是固定的,称为this指针,this指针是隐式的。(构造函数比较特殊,没有这个隐含 this形参)
---编译器会对成员函数进行处理,在对象调用成员函数时,对象地址作实参传递给成员函数的第一个形参this指针。

---this指针是成员函数隐含指针形参,是编译器自己处理的,我们不能在成员函数的形参中添加this指针的参数定义,也不能在调用时显示传递对象的地址给this指针。


默认成员函数

构造函数没有返回值,可以有参数,没有参数的构造函数被认为是缺省构造函数,但缺省构造函数只允许有一个

与类同名,可以有多个构造函数 ,可以重载, 没有隐含的this形参

作用是将对象初始化,创造出对象时系统自动调用构造函数

析构函数

       与类同名,并且与构造函数工作性质相反,故有~ 标识析构函数

  • 当对象生命周期结束(即出了类的作用域),系统自动调用析构函数


  • 不支持重载,


复制构造函数是一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。如果在类中没有定义肤质构造函数,编译器会自行定义一个。复制构造函数要求有一个类类型的引用参数。

类名::类名(const 类名&引用名,;

例如:

class A

{ public:

   A(int);

  A(const A&,int=1);

   //…

};

//…

A a(1);

A b(a,0);

A c=b; 

类的其他成员

常成员

在类中,定义类的常成员用const约束,常成员函数是指成员函数this指针被约束为指向常量的常指针,在函数体内不能修改数据成员的值。

C++类的静态成员

使用 static 关键字来把类成员定义为静态的。当声明类的成员为静态时,这意味着无论创建多少个类的对象,静态成员都只有一个副本

Static静态数据成员:封装性、继承性、多态性。

友元函数:
友元函数可以访问类的所有成员,包括私有成员,

友元函数是非对称的。

友元函数定义时将关键词friend冠于一个函数原型或类名之前,则成为该函数或类的友元

友元函数不是类的成员,调用私有成员时也有差别

如:
A Aobj;

FriendFun(&Aobj,5);

Aobj。MemberFun(5);

友元函数必须在参数表中显示的知名要访问的对象Aobj,而成员函数则在他的对象Aobj上操作。


学习心得:类与对象的学习相较于以前的知识学习方法不同,也更加有难度,联系性更强,个人感觉学习起来比较费劲,上课有时会跟不上,自己也会到图书馆借阅相应的书籍。同时学习和应用类与对象的知识也更加需要仔细和耐心,以后会慢慢培养自己自信认真的习惯。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值