前言
上回只顾着刷soj忘了总结。。。总想着全刷完再总结,不过肯定没有时间了。所以吸取教训,边刷边总结。
构造函数的缺省参数
比如说:
Student(int, char*, int);
只输入一个参数的时候
Student std3(124);
它会输出
No Name (124) is 0 years old.
所以就该这样写这个构造函数
Student::Student(int id_, const char* name_ = "No Name", int age_ = 0) {
id = id_;
snprintf(name, sizeof(name), name_);
age = age_;
}
核心思想就是,把缺省的参数附个值先。
snprintf的用法
据说非常安全。。。
为了给已经申明过的字符串赋值,可以使用
snprintf(name, sizeof("No Name"), "No Name");
snprintf(name, sizeof(name), name_);
把char* name_ = “No Name”赋值给char* name;
多头文件一定要记得写…
记得写
#ifndef VEHICLE_H
#define VEHICLE_H
#endif
原因是要不然会出现重复定义类的情况。。。
fabs,C++11
关于绝对值,之前的标准里用的是abs,然而abs只能求int类型的绝对值。到了C++11里,就用fabs来求double,float类型的绝对值。头文件依然是cmath
hhh,突然看到这学期之前做过的题目。。。
感到自己还是蛮有韧性的orz,即使过了提交时间,还是会继续做,即使只有30分。。。hhh
还有常常会收到这样的提示。。。还是会坚持做下去
嗯。。。弱渣的成长之路~
慎终如始,则无败事。
//先这样吧,回寝室咯~
运算符重载
Complex operator+(Complex &a) {
Complex c;
c.real = real + a.real;
c.imag = imag + a.imag;
return c;
}
Complex operator+=(Complex &c) {
*this = *this + c;
return *this;
}
对比一下。。。时间长了都记不得了。。。