C++学习——class类

面向过程和面向对象的区别

面向过程:面向过程强调的是完成既定目标需要完成哪些步骤,总结完步骤之后,把所有步骤走完也就达到了既定目标了,所以一个目标就是各个步骤的糅合的结果

面向对象:面向对象强调的是完成既定目标需要哪些条件(比如需要什么物品),之后逐步满足各个条件之后,最后再进行组装合并,达到既定目标。

       综合以上的对比,我们可以发现面向对象是先把条件都凑齐了再进行组装,而面向过程总是在上一个步骤的基础上进行合并组装,一步一步完成,这两种的区别在于,当我们需要对目标进行调整时,面向对象中先完成的条件,可以用在需要调整的目标上,但是面向过程不支持这一个,需要重新走完整个步骤,所以面向对象最大的好处就是降低工作的重复率。

类的分析

1.类的特性

C:         程序是由函数组成,问题 --> 函数来解决
                        函数();
C++:    程序是由对象组成,问题 --> 对象来解决 (对象去调用函数)

                        对象.函数()
C++:  
        ①设计类  ---> ②创建对象 ---> ③用对象解决问题    

C++的四大特性:
①抽象:将很多类似事物,提取他们的共同特征,抽象成一个类
②封装:提供一个接口去使用,使用时不在乎实现过程
③继承:在现有类的基础上,派生出一个新的类
④多态:不同类对象对同一事物的不同形态 

2.类的由来

    ①C struct
            1.只支持数据成员
            2.成员没有访问权限,即外部可以直接访问
            3.使用成员运算符  .  来访问成员
            4.使用函数指针模拟函数成员  
            5.使用 struct + 类型名  表示结构体类型 
            
    ②C++ struct
            1.支持数据成员,也支持函数成员
            2.成员没有访问权限,即外部可以直接访问
            3.使用成员运算符  .  来访问成员
            4.直接使用 类型名  表示结构体类型 ,不需要加上struct
    ③C++ class
            1.支持数据成员,也支持函数成员
            2.成员有访问权限
                        
                        public                公共的
                        protected            受保护的
                        private                私有的
                        
                        默认为:private
                    
            3.使用成员运算符  .  来访问成员
            4.直接使用 类型名  表示类类型 
                        通常首字母大写

3.类的定义

        class 类名
        {
            数据成员;                // 属性:它有什么
            
            函数成员;                // 行为:它能做什么                (方法)
        };

        class 类名
        {
            private:
                成员;
            protected:
                成员;
            public:
                成员;
        };   


        
        两部分:属性 和 行为
        类的名字需要通俗贴合主题。
        属性:表示这个类有什么?     --> 用数据来描述 --> 成员变量
        行为:表示这个类能做什么?--> 用函数来实现 --> 成员函数  


        理论上,类中成员的权限可以随意指定
        通常:数据成员私有化,函数成员公有化    
                    通过公有的函数成员去间接的访问数据成员   
     
        类必须定义后,才能创建对象(定义一个变量),

        在类外定义时需要加上       类名::

        对于权限来说,外部访问才会考虑到权限,内部访问是一定可以访问的。

class Circle
{
private:
    int r;
    float area;
public:
    int setradii(int a)
    {
        if (a <= 0)
            return -1;
        r = a;
        return 0;
    }
    void getarea()
    {

        area = 3.1415*r*r;
    }
    void showared();
    void showradii();


};
void Circle::showared()
{
    std::cout << "area = " << area;
}
void Circle::showradii()
{
    std::cout << "radii = " << r;
}
int main()
{
    Circle SS;
    SS.setradii(1);
    SS.getarea();
    SS.showared();
    SS.showradii();
    system("pause");
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值