继承中派生类的构造函数的注意事项
定义中给构造函数参数赋默认值,说明中不需要。
说明中将构造函数的参数赋给基类的构造函数,定义中不赋值。
例如:
class A: public B
{
public:
A (int x= 1, int y = 2);
//。。。。。
}
A::A(int x, int y): B::B(x)
{
//。。。。。
}
————————————————————————
endl, flush, ends 辨析
ends函数 终止字符串
flush函数 刷新缓冲区
endl函数 终止一行并刷新缓冲区
#include <iostream>
int main()
{
using namespace std;
cout << "a" ;
cout << "b" <<ends;
cout << "c" <<endl;
cout << "e" << flush;
cout << "f" << flush;
cout << "g" ;
cout << "h" <<ends;
cout << "i" << flush;
cout << "j" <<endl;
return 0;
}
结果
ab c
efgh ij
————————————————————————
长度固定的数组和动态内存分配的字符数组赋值 函数
1.长度固定的数组
char x[10]
已知 char y[~]=…
copyChar(char *p_recevier, const char * p_input, unsigned charSize)
{
unsigned str_len = strlen(p_input) < charSize - 1 ? strlen(p_input) : charSize - 1;
strncpy(p_recevier, p_input, str_len);
p_recevier[str_len] = '\0';
}
copyChar(x, y,10);
2.动态内存分配的数组
char *x;
char *y=.....
cpNewStr (const char* p_src_txt)
{
unsigned str_len = strlen(p_src_txt);
char* p_des_txt = new char [str_len + 1];
strcpy(p_des_txt, p_src_txt);
return (p_des_txt);
}
x=cpNewStr(y)
————————————————————————
成员和类的默认访问修饰符是 private
一个派生类继承了所有的基类方法,但下列情况除外:
基类的构造函数、析构函数和拷贝构造函数。
基类的重载运算符。
基类的友元函数。
————————————————————————
字符串——》数字转换
stoi(string);
检测字符串是否全为数字
bool AllisNum(string str)
{
for (int i = 0; i < str.size(); i++)
{
int tmp = (int)str[i];
if (tmp >= 48 && tmp <= 57)
{
continue;
}
else
{
return false;
}
}
return true;
}