关于我为什么在学习C++很久后又要重新去再学一遍OOP呢? 我感觉就是在实际使用中会碰到各种奇妙的问题, 而这些问题在我初次学习(有学校教的还有自学的)面向对象时其实并没有遇到过, 并且面向对象的精髓我也并没有掌握多少, 于是我就想深入的去学习面向对象, 同时写下这篇文章放到博客.
struct在C++中相较于C得到了一些扩充, 除了能存储数据外也能封装函数了, 而class则又在struct的基础上增加了访问权限, 至少我在之前授课的时候就是这么引入class的, 那么在引入后就开始讲继承、多态等内容了, 但其实有个问题就是, 为什么要面向对象呢?
在很久之前写C语言作业时遇到一个问题, 从stdin获取用户输入时会获取到两次用户输入, 以下是一个小demo
#include <stdio.h>
void print_menu()
{
printf("1.abc\n2.bcd\n3.ccc\n>>>");
}
void process(char cho)
{
switch (cho)
{
case '1':
printf("abc\n");
break;
case '2':
printf("bcd\n");
break;
case '3':
printf("ccc\n");
break;
default:
printf("err\n");
break;
}
}
int main()
{
while (1)
{
print_menu();
char choic = getchar();
printf("\n");
process(choic);
}
}