一,过程性编程和面向对象编程
1)采用过程性编程方法,首先考虑要遵循的步骤,然后考虑如何表示这些数据。
2) 采用面向对象编程,首先从用户角度考虑对象,描述对象所需要的数据,以及描述用户与数据交互所需要的操作。完成对接口的描述后,需要确定如何实现接口和数据存储,最后使用心得设计方案创建出程序。
二,抽象和类
1)类:将抽象转换为用户定义类型的C++工具,将数据表示和操纵数据的方法组合成一个整洁的包。
2)类包括:类声明:数据成员的方式描述数据部分,成员函数的方式描述公有接口
类方法定义:描述如何实现类成员函数
3)数据隐藏:将数据放在类的私有部分
封装:隐藏对象的属性和实现细节,仅对外开发公有接口
4)成员函数:定义时使用 :: 标识函数所属的类;可以访问类的private组件
void stock::buy(double price) // buy函数具有类作用域,其他成员函数不用:: 就可以访问
5)public:定义的函数或成员变量可以被任何方法访问
protect:只可以被本类中方法或派生类中的方法访问
private:只能被本类中方法访问
6)类例子:
#include <iostream>
#include <cstring>
class student
{
private:
char *name;
int num;
double average_score;
int count;
public:
student(char *m_name,int m_num,double m_average_score,int m_count);
student();
~student();
void update(char *m_name,int m_num,double m_average_score,int m_count);
void show();
};
student::student(char *m_name,int m_num,double m_average_score,int m_count)
{
name=m_name;
num=m_num;
average_score=m_average_score;
count=m_count;
}
student::~student()
{
}
student::student()
{
}
void student::update(char *m_name,int m_num,double m_average_score,int m_count)
{
name=m_name;
num=m_num;
average_score=m_average_score;
count=m_count;
}
void student::show()
{
using std::cout;
using std::endl;
cout<<"name:"<<name<<endl;
cout<<"num:"<<num<<endl;
cout<<"average_score:"<<average_score<<endl;
cout<<"count:"<<count<<endl;
}
int main()
{
using std::cout;
char *m_name="tianshuai";
student *s=new student(m_name,01,98.8,5);//new申请 返回指针
s->show();
s->update("xiaoming",02,99.6,10);
s->show();
return 0;
}
7)使用类注意的地方:
1,构造函数和析构函数没有返回类型
2,一般程序不能直接访问数据成员,只能通过成员函数来访问数据成员
3,构造函数时候,不要将类成员名称用作构造函数的参数(m_value)
4,不能使用对象调用构造函数,因为构造函数构造出对象之前对象不存在
5,通常不应该在代码中显式调用析构函数,对象被删除后调用析构函数
三,this指针
this指针用来指向,调用该方法的对象。指向被调用函数所在的类实例的地址
每个成员函数都有一个this指针,指向调用对象
*this 表示对象本身
四,对象数组
默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化式就会使用默认构造函数。
当程序创建没有被显式初始化的类对象时,总是调用默认构造函数。
接口:函数声明
类作用域:成员变量不能在声明中初始化
分享到:
相关推荐
课程源代码 自己慢慢敲得 里面有比较详细的注释
《C++ Primer Plus第6版中文版》学习笔记(第十章) 红字内容是有疑问或者没把握的。 绿字部分是比较重要,或者经过确认的
C Primer Plus第十章 编程练习答案,亲测编译运动通过。
第十章大部分习题源码 VC++6.0测试可用 对初学者很有帮助
c++ primer plus 答案c++ primer plus 答案c++ primer plus 答案c++ primer plus 答案 c++ primer plus 答案
C++Primer Plus第六版的课后题练习题
c++primer第五版中文版课后答案(第12章)pdf格式,真正的c++primer习题集(第五版),用手机拍的,但是每个字都能看的很清楚
C++primer 课后答案,习题对帮助记忆、理解很重要。内容高清,全面,带有书签,
C++Primer第五版习题答案+详解(完整版) C++Primer第五版习题答案+详解(完整版)
C++Primer中文第三版(C++从入门到精通)第一章的读书笔记,主要是C++程序、预处理器指示符、iostream库等的基础知识点读书笔记。
c++primer第五版中文版课后答案(第17章)pdf格式,真正的c++primer习题集(第五版),用手机拍的,但是每个字都能看的很清楚
C++primer 课后题答案 目录 第一章 快速入门 2 第二章 变量和基本类型 7 第三章 标准库类型 13 第四章 数组和指针 21 第五章 表达式 31 第六章 语句 37 第七章 函数 37 第八章 标准IO库 37 第九章 顺序容器 43 第十...
C++Primer中文版第5版
C++ primer Plus的pdf资源
C++primer第五版第二章习题答案.pdf
C++ Primer(5e,Addison Wesley,201208).epub 这是老外网站上刚泄露出来的正式版本(绝对的正式版,还有ISBN和出版日期),不是以前网上出现过的草稿 这本书的上一版(第4版)还是2005年的事了 拖了很多年之后,去年...
C++是一门强大、难学、令人痛苦,但又是如此美妙的编程语言,在工业界和学术界都可以使用,《C++ Primer(第5版)》即针对初学者,也同样适用于有一定编程经验的读者,第5版配备了C++11新标准,是C++粉丝们书架上...
C++ Primer Plus 编程练习源码工程 第12章 ,这是本人自己学习书籍时写的编程练习的源码工程,供大家参考交流。
C++Primer课后习题解答(第1~16章完整答案)清晰完整版
c++primer第五版中文版课后答案(第18章)pdf格式,真正的c++primer习题集(第五版),用手机拍的,但是每个字都能看的很清楚