上一页 1 ··· 6 7 8 9 10 11 下一页

2013年7月31日

基础。。。

摘要: 对于指针,要做下面的事情:1. char * mychar2.mychar=(char *)malloc(sizeof(Char)*num);分配了空间之后才能做各种操作如果使用完毕,要做:3.free(mychar)这个太基础了,C#和 C++差距挺大的 阅读全文

posted @ 2013-07-31 10:57 shoutcharter 阅读(106) 评论(0) 推荐(0) 编辑

2013年7月30日

虚基类

摘要: 虚基类不允许初始化传递:A{int I;A(inti):I(i){} }B:public virtual A{int J;B(inti,intj):A(i),J(j){}}C:public virtualA{int K;C(inti,intk):A(i),K(k){}}D:C,B{}下面这样是不行的D(inti,intj,intk):B(i,j),C(i,k){}将使用A的默认构造函数,i 没有作用正确的做法:D(int i,int j,int k):A(i),B(i,j),C(i,k){} 阅读全文

posted @ 2013-07-30 21:15 shoutcharter 阅读(125) 评论(0) 推荐(0) 编辑

基类方法的反隐藏 反private 秘籍

摘要: class GoodStudent:private Mentor,private Student { public : using Mentor::GetInfo; ///-------------------------------------------基类方法露出来了 GoodStudent(string name,string title,int i):Mentor(name,title),Student(i) {}; // void GetInfo();}; 阅读全文

posted @ 2013-07-30 17:26 shoutcharter 阅读(128) 评论(0) 推荐(0) 编辑

NAMESPACE

摘要: 限定作用域,比类高,比文件低。cpp 和 h 里面都要用到。 阅读全文

posted @ 2013-07-30 16:49 shoutcharter 阅读(98) 评论(0) 推荐(0) 编辑

所谓has a 和 is a

摘要: 在 C# 中 很好理解:{ is a: 继承关系。 has a: 成员关系,其他类是本类的成员。}在C++ 中稍微复杂一点:{ 由于有多重继承, 继承也可能是has a,类似C#里面的接口 ; 一般认为 private 和 protected 的是 has a ; public 的是 is a ;)使用多重继承的场合:派生类中,每个基类只有一个对象成员,却需要使用protect 或者 重写 virtual 函数。:即真正意义上的多重继承。PLUS:C# 确实比C++好用,但是学了C++才能更好的理解C#.这就是为什么JAVA能够流行的原因。 阅读全文

posted @ 2013-07-30 16:36 shoutcharter 阅读(221) 评论(0) 推荐(0) 编辑

C++ 的多重继承

摘要: 不能够从对象访问基类的公开方法,真悲剧!只能在类里面提供公共函数!void Mentor::GetInfo(){ cout>(istream & mycin,Course & myCourse) { mycin>>myCourse.name ; return mycin; }void GoodStudent::GetInfo(){ Mentor::GetInfo(); Student::GetInfo();void GoodStudent::GetInfo(){ Mentor::GetInfo(); Student::GetInfo(); ((... 阅读全文

posted @ 2013-07-30 15:58 shoutcharter 阅读(134) 评论(0) 推荐(0) 编辑

c# 与 c++ 编译

摘要: C#的所有方法封装在类中,类的方法没有先后之分,无需声明。//而C++必须在函数调用前,由编译器检查参数类型是否合法,所以必须知道函数的原形(protype),所以必须提前声明函数的签名(signature).也就是你所说的声明。//这个具体涉及到编译原理,C#,C++的编译模型不同 阅读全文

posted @ 2013-07-30 12:12 shoutcharter 阅读(181) 评论(0) 推荐(0) 编辑

初始化的顺序:和定义的顺序以及初始化函数都有关系。都要先定义的在前,后定义的在后。甚至连类的顺序都必须这样。

摘要: 这种情况是在 codeblocks 里面发生的,但是在NETBEANS 里面没有,在VS里面呢?class Course{ public: int n; Course(int i):n(i){}; Course(); //Course(); virtual ~Course(); private:};class Student{private: typedef std::valarray DBArray; Course mycourse; DBArray scores; int n; int m;public... 阅读全文

posted @ 2013-07-30 10:06 shoutcharter 阅读(115) 评论(0) 推荐(0) 编辑

2013年7月29日

关于转换

摘要: class MyDaugter: public MyBase{ public : MyDaugter(string name2); private: string name2;}; string dtname="xiaofang"; MyDaugter dt=dtname;可以直接使用赋值运算符,那么两个参数呢,不可以!!! 阅读全文

posted @ 2013-07-29 17:00 shoutcharter 阅读(171) 评论(0) 推荐(0) 编辑

隐藏

摘要: void MyBase::SetName(int i,int j){ostringstream ost; ost << i; name=ost.str(); cout<<i<<"*"<<j<<"*2"<<endl;}void MySun::SetName(int i,int j){ SetName(i,j); ostringstream ost; ost << i; name=ost.str(); cout<<i<<"*"< 阅读全文

posted @ 2013-07-29 15:20 shoutcharter 阅读(103) 评论(0) 推荐(0) 编辑

上一页 1 ··· 6 7 8 9 10 11 下一页

导航