OOP第一次作业总结

OOP第一次作业总结

一.语法
1.C++:
• cin可以连续从键盘读取想要的数据,以空格、tab或换行作为分隔符。
• vector类型作为class的static成员,需要在class外 define。
如:
class MyClass {
private:
static std::vector myObjectCache;//这仅仅是个声明
public:
static void UpdateCache ();
};
需要在类外define
std::vector MyClass::myObjectCache;//定义
当然其他的数据类型同样如此。
• (背景:由于main函数不能被其它函数调用,因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。)
main函数的三个参数:
第一个参数 argc ,用于存放命令行参数的个数。
第二个参数 argv,是个字符指针的数组,每个元素都是一个字符指针,指向一个字符串,即命令行中的每一个参数。
第三个参数 envp ,也是一个字符指针的数组,这个数组的每一个元素是指向一个环境变量的字符指针。
argc表示的是argv这个数组不为空的元素个数(文件名也是一个参数)((连续)空格会被舍弃)
最后一个参数envp,存放环境变量的数组。envp数组的最后一个元素也是NULL指针。
• 要在函数参数中传递整个数组,可以类似int(&array)[n]这样作为一个参数,就可以直接用数组名调出数组各个值了。

二.类的函数:
1. 运算符重载函数:注意友元函数不是类的成员函数(有的运算符必须要有对象的指针,如[ ]就不能重载为友元函数,而必须作为类的成员函数)。
2. 区分静态成员函数和非静态成员函数:静态成员函数不属于某个对象,而是属于整个类,因此调用是也是在前面加上类名的限定符,而非静态成员函数对于类的每个对象是不一样的,调用时也应该在前面加上对象的限定符。
3. 注意参数是const的函数,要对该对象进行的操作也一定要是const。
4. 分为多个cpp文件完成工程时,类内成员函数不允许在其他文件声明,而如友元函数等类外函数在其他文件中如果用到,一定要用extern声明。
5. 要防止多次#include头文件带来的重定义重声明,使用ifndf非常合适。
6. 该函数的参数是哪个对象,该函数就应该在该对象对应的类所在文件的cpp文件中定义(虽然在部分比较智能的编译器中该问题不会报错!)(第一次作业D)

三.多文件编译:
1、多文件编程,一个文件可以有多个函数,但是一个函数最多一个文件
2、多文件编程的步骤:
• 把所有函数分散在多个文件中,通常主函数在单独的文件里
• 为每个源文件编写一个配对的以.h作为扩展名的头文件,主函数所在的不需要,不分配内存的内容都可以写在头文件里,头文件里至少要包含配对源文件里所有函数的声明
• 在所有源文件里使用#include预处理指令包含所需要的头文件,配对头文件是一种需要的头文件,如果源文件里声明了头文件里声明的函数,也是需要的头文件
3、在GCC命令后列出所有源文件的路径就可以编译多文件程序
4、可以把多文件程序的编译过程记录在Makefile文件里,然后使用make工具完成编译
5、从一个源文件里使用另一个源文件的全局变量时,需要使用extern关键字再次声明这个全局变量先在函数里添加变量,再在头文件用extern声明
6、使用extern关键字声明变量时,通常放在头文件里
7、不可以跨文件使用静态全局变量(思考第一次作业D,明确用法)

四.小注意点:
1.特别注意bool判断时不能把大小号写错!容易浪费大量时间。
2.看见错误后先判断一下是哪部分的输出错了,再修改相应部分的代码。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值