程序设计

面向对象的基本概念

2017-04-12  本文已影响40人  MinoyJet

面向对象的基本概念

1. 简述 C 和 C++ 有何不同?

宏观上:

微观上:略(参考下文)

2. C 和 C++ 中结构体有何不同?

int My_Add(int a, int b)  
{  
    return a + b;  
}  
int My_Sub(int a, int b)  
{  
    return a - b;  
}  
struct  CTest  
{  
    int(*Add)(int, int); //函数指针  
    int(*Sub)(int, int);  
};  
  
int main()  
{  
    struct CTest test;  
    int ret = 0;  
    test.Add = My_Add;  
    test.Sub = My_Sub;  
    ret = test.Add(3, 5);  
    printf("%d", ret);  
}

特别注意:

struct  CTest  
{  
    char ch;  
    int num;  
};  
int main()  
{  
    CTest test;  // C 中必须写成 struct CTest test;
    test.num = 1;  
    printf("%d", test.num);  
} 

这样在 C 语言中是编译不过去的,原因提示未定义标识符 CTest 。总的来说就是在 C 语言中结构体变量定义的时候,若为 struct 结构体名 变量名定义的时候,struct 不能省略。但是在 C++ 之中则可以省略 struct。

3. C++ 中的结构体和类有何区别?

特别注意:
(1) 在表示诸如点、矩形等主要用来存储数据的轻量级对象时,首选 struct 。
(2) 在表示数据量大、逻辑复杂的大对象时,首选 class 。
(3) 在表现抽象和多级别的对象层次时,class 是最佳选择

4. 简述面向对象的三个基本特征。

5. 什么是局部类?

在 C++中允许在函数体内定义一个类,这样的类被称之为局部类。对于局部类来说,它只能够在函数内部使用,函数外是无法访问局部类的,因为局部类被封装在了函数的局部作用域中。

参考资料:
详解C结构体、C++结构体 和 C++类的区别

上一篇下一篇

猜你喜欢

热点阅读