string 转int
string str=”123”;
int i;
i=atoi(str.c_str());
cin.getline()输入最后会自动丢弃回车符 cin.clear()是不会清除最后的回车符的 如果想清楚最后那个回车符,必须调用一次cin.get()! 关于模板类: 错误 1 error C2955: “List”: 使用类 模板 需要 模板 参数列表 e:\c++\number10\number10\list.cpp61number10 template
不会改变对象中成员变量的数值。 关于返回this String &operator=(const String &st) { if(this==&st)//this的应用 return *this;//不能写成return this,*this才是对象,this只是一个引用 } 关于派生类调用父类方法,用域运算符:: 关于派生类调用父类的友元函数: friend ostream&operator<<(ostream &os,const baseDMA &bd) { os<<”This is baseDMA: “; os<<(const DMA &)bd;//通过强制类型转换调用基类友元函数 //os<<”label:”<<rs.label<<” rating:”<<rs.rating<<endl; return os; } throw 指针问题 class A{..} throw (new A()); catch(A *a); peek()返回下一个字符,但不抽取流中字符 静态变量是不如栈的。
—————————————————————————————————————————————————— //写的错误或者不好的地方请多多指导,可以在下面留言或者给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。 转载请注明出处:https://www.royalchen.com/ author:royalchen Email:royalchen@royalchen.com ———————————————————————————————————————————————————

由此可见,在类外仅有public修饰的成员可见,而protected和private修饰的成员属性是不可见的,同样的,对于成员方法而言,也是一样的。
由此可见,成员方法和成员属性也是一样的,因为两者都是属于类的成员!因此访问规则都是一样的。
由此可见,对于公有继承而言,基类的protected和public成员都是可见的。并且,使用公有继承,基类的公有成员将变为派生类的公有成语,基类的保护成员将变成派生类的保护成员,基类的私有成员将变为派生类的私有成员,可以通过下面的例子测试:
结果正如预测的那样! —————————————————————————————————————————————————— //写的错误或者不好的地方请多多指导,可以在下面留言或者给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。 转载请注明出处:
这个结果看似和public继承是一样,那么,是否其他的也是一样的呢?看下面的测试:尝试在派生类外直接访问基类成员
可以看到,基类的public成员也不能直接访问了!而在public继承中,时可以在类外直接访问基类的public成员的! 这是为什么?原因是使用保护继承时,基类的公有成员和保护成员都会变成派生类的保护成员。这就是保护继承和公有继承的最主要区别。貌似其他的木有区别0.0。 —————————————————————————————————————————————————— //写的错误或者不好的地方请多多指导,可以在下面留言或者给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。 转载请注明出处:
结果和前面的都是一样的。那么在派生类类外的可见性呢? 测试例子:
编译结果跟保护继承是一样的,是否说两者规则一样呢?答案当然是否定的。 使用私有继承时,基类的公有成员和保护成员都将成为派生类的私有成员!也就是说,使用私有继承时,第三代继承类将不能使用基类的接口(即public类成员),私有继承和保护继承的区别正是在此! 测试例子:
结果正好印证了上面的结论。
区别在于:结构体中的成员的默认访问属性都是public,而在类中则是private: 也可以利用默认初始化器的方式初始化,例如:
同样的,C++还支持显式删除构造函数的概念。例如,你想定义一个类,这个类没有任何的构造函数,并且你也不想让编译器自动生成一个默认的空参数的构造函数,那么你就可以显式地删除默认构造函数。
可以看到,默认构造函数被删除了,那么,能不能删除一些其他的带参数构造函数呢? 其实这个问题有点多余,因为如果你不想要这个构造函数,你不定义这个带参的构造函数就OK了!
构造函数初始化器出现在构造函数参数列表以及构造函数开花括号之间,以冒号开始,逗号分割。 列表中每个元素都使用函数符号或者调用超类构造函数初始化某个数据成员。调用超类构造函数的例子如下:
有些人喜欢在构造函数体内初始化数据成员,但是有些数据类型必须在构造函数初始化器中初始化。 1:const数据成员 原因是const成员创建之后无法对其赋值!必须在创建的时候提供初始值。 2.引用数据对象 如果不指向一个量,引用将无法存在 3.没有默认构造函数的对象数据成员 当调用该对象数据成员的默认构造函数初始化成员对象时,无法找到默认构造函数。 4.没有默认构造函数的超类。 类似于3。 —————————————————————————————————————————————————— //写的错误或者不好的地方请多多指导,可以在下面留言或者给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。 转载请注明出处:
有其他参数的情况