• 第13.14.15.16课.类


    第13课.进阶面向对象(上)

    1.类和对象基本概念

    类 :是指一类事物,是一个抽象的概念。用于描述一类事物所特有的属性和行为。
    对象:指的是属于某个类的具体实体。拥有所属类中描述的一切行为和行动。
    类是一种模型,这种模型可以创建出不同的对象实体;对象实体是类模型的一个具体实例。
    (类是一个概念,对象是根据这个概念产生的一个具体事物)

    第14课.进阶面向对象(下)

    1.类之间的基本关系

    a.继承
    从已存在类细分出来的类和原来类之间具有继承关系;继承的类(子类),拥有原类(父类)的所有属性和行为。
    b.组合
    一些类的存在必须依赖于其他的类,这种关系叫组合;组合的类在某一个局部上由它的类组成。(整体和部分的关系)

    第15课.类与封装的概念

    1.c++中类的封装

    成员变量:c++中用于表示类属性的变量
    成员函数:c++中用于表示类行为的函数
    c++中可以给成员变量和成员函数定义访问级别。

    public :成员变量和成员函数可以在类的内部和外界访问和调用。
    private:成员变量和成员函数只能在类的内部被调用和访问。
    eg:

    #include <stdio.h>
    
    int i = 1;        //全局变量
    
    struct Test
    {
    private:            //私有
    	int i;
    
    public:            //公共
    	int j;
    		
    	int getI()
    	{
    		i = 3;
    		
    		return i;
    	}
    };
    
    int main()
    {
    	int i = 2;        //局部变量
    	
    	Test test;        //定义对象
    	
    	test.j = 4;
    	
    	printf("i = %d
    ", i);              // i = 2; 局部变量
    	printf("::i = %d
    ", ::i);          // ::i = 1; 使用默认命名空间中的i。即全局变量i
    	// printf("test.i = %d
    ", test.i);    // Error   私有的不能使用
    	printf("test.j = %d
    ", test.j);    // test.j = 4
    	printf("test.getI() = %d
    ", test.getI());  // test.getI() = 3
    	
    	return 0;
    }
    

    第16课.类的真正形态

    问题:经过不断的改进,结构体struct越来越不像它在c语言中的样子了?c++中struct既能定义一个结构体又能定义类。

    1.类的关键字

    c++中提供了新的关键字class用于定义类。class和struct的用法完全相同。
    区别:
    在用struct定义类时,所有成员的默认访问级别为public;
    在用class定义时,所有成员的默认访问级别为private;

    eg:

    #include <stdio.h>
    
    struct A
    {
    	// defualt to public
    	int i;
    	// defualt to public
    	int getI()
    	{
    		return i;
    	}
    };
    
    class B
    {
    	// defualt to private
    	int i;
    	// defualt to private
    	int getI()
    	{
    		return i;
    	}
    };
    
    int main()
    {
    	A a;
    	B b;
    	
    	a.i = 4;
    	
    	printf("a.getI() = %d
    ", a.getI());
    	
    	b.i = 4;
    	
    	printf("b.getI() = %d
    ", b.getI());
    	
    	return 0;
    }
  • 相关阅读:
    c++ mvc timer的应用
    table 在网页无法顶到头部问题
    vs2008 C++ 没有找到MSVCR90D.dll 问题
    FrametSet中各frame,iframe之间dom的访问
    关于VC中的Timer
    Vc2008中如何为视图类添加消息响应
    C++ map在MFC中的应用
    解决iframe 右边有空白的问题
    poj1125 Stockbroker Grapevine *
    poj1062 昂贵的聘礼 **
  • 原文地址:https://www.cnblogs.com/huangdengtao/p/11799683.html
Copyright © 2020-2023  润新知