大一C++所学知识点整理(一)——对于类的理解

首先我们学习C++遇到的一个概念就是oop,那么什么是oop那,就是面向对象编程,我看到了一个人,便可以把它写成一个类,我遇到了一个工人,那么工人是属于类的,那么工人就可以继承人类和它里面的特性。这就是oop的思想。

而对于类里面的一些特点一一介绍一下。

首先得一点便是数据隐藏,正如我们这个社会中,我们有很多的隐私不想让别人发现,那么程序也是一样,如果在类里的属性能够被所有的其他地方所看见,那么势必会引起混乱,那么怎么处理那?正如我们大街上看到的差不多,每个人穿着衣服的目的便是不让别人看到。所以C++在这里有了一个数据隐藏也就是private,protect,和public的修辞符。private私有只在类里面可见,protect是保护,权限比私有低一些,可以有跟多的东西可以看见,而public则是公开的,基本对所有的类都是可见的,所有的人都可以访问。

然后我们说一说多态,比如我现在要计算一个整数的三倍,之后我改变了注意,我要计算一个浮点数的,那么我不是要重新写一遍吗。其实不然,我们可以利用C++里面多态的特点,其实这一点我们在之前就有接触过,因为多态的思想跟函数重载是很相似的。我根据你传入数据的不同,我挑选符合的数据给你用,这便是多态的特点。这一点个人认为挺重要的,因为如果用的好的话,我们就可以节省很多重复的劳动。

而一个类最基本的结构应该是如下的:

class Stock  
{  
    private:  
        std::string company;  
        long shares;  
        double price;  
        double total;  
        void setTotal()  
        {  
            total = shares * price;  
        }  
    public:  
        void acquire(const std::string & comp, long shar, double pri);  
        void buy(long shar, double pri);  
        void sell(long shar, double pri);  
        void show();  
};  

我们可以看见在stock这一个类中间有私有成员有公有成员,还有在类里面实现的函数,包括一些类的声明。

 

 

#include <iostream>  
#include "stock00.h"  
using namespace std;  
  
void Stock::acquire(const string & comp, long shar, double pri)  
{  
    company = comp;  
    if(shar < 0)  
        cout << "Can't buy a nagitive number shares.\n";  
    else  
    {  
       shares = shar;  
       price = pri;  
       setTotal();  
    }  
}  
  
void Stock::buy(long shar, double pri)  
{  
    if(shar < 0)  
        cout << "Can't buy a nagitive number share.\n";  
    else  
    {  
        shares += shar;  
        price = pri;  
        setTotal();  
    }  
}  
  
void Stock::sell(long shar, double pri)  
{  
    if(shares < shar)  
        cout << "Can't sell a larger number than shares.\n";  
    else if(shar < 0)  
        cout << "Can't sell a nagitive number shares.\n";  
    else  
    {  
        shares -= shar;  
        price = pri;  
        setTotal();  
    }  
}  
  
void Stock::show()  
{  
    cout << "Company : " << company << endl;  
    cout << "Shares : " << shares << endl;  
    cout << "Price : " << price << endl;  
    setTotal();  
    cout << "Total : " << total << endl;  
    cout << endl;  
}  

而这里便是类的定义了,通过这个程序可以对类有一个大概的了解。

其实在Java中所谓的类的接口便是C++中类里面的公有函数,通过这些公有函数,相当于一个网络共享一样,两端都可以被人所看见,我写完的程序只要写进函数,你的类便可以调用我刚写的函数。

 

通常c++程序员将类的声明放在头文件中,如上例中,类的声明放在stock00.h这个头文     件中;而类的实现放在源代码文件中,如上例中,类的实现放在stock00.cpp这个源文件中。类设计应尽可能的将公有接口与其实现细节分开。

访问控制:类中有private和public两个部分,使用类对象的程序都可以使用类的public部分,但只能通过类的public中的公有成员函数才能访问private中的数据和函数。

类成员不管是数据成员还是函数成员,都可以在类的私有部分或者公有部分中声明。但是由于隐藏数据是OOP的主要目标之一,所以我们通常将数据成员放在private部分中,将函数成员放在public部分中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值