请教几个c++方面的问题,谢谢!
1。双目运算符?:不是说从右到左吗,什么意思?2。组合与派生该用哪个呢?(比如,有鼻子,嘴,耳朵等类,现在需要创建头,是从上面派生,还是在头类的成员属性添加以上对象呢,为...
1。双目运算符?:不是说从右到左吗, 什么意思?
2。组合与派生该用哪个呢?(比如,有鼻子, 嘴, 耳朵等类,现在需要创建头, 是从上面派生, 还是在头类的成员属性添加以上对象呢, 为什么?)
3。运算符成员函数能否为静态的? 展开
2。组合与派生该用哪个呢?(比如,有鼻子, 嘴, 耳朵等类,现在需要创建头, 是从上面派生, 还是在头类的成员属性添加以上对象呢, 为什么?)
3。运算符成员函数能否为静态的? 展开
展开全部
1. 从右到左是一种原则, 跟三目本身没关系, 因为三目本身是一个整体.
x?y:z 意义是: 如果x成立(为真), 则整个表达式(x?y:z)的值为y; 反之, 如果x不成立, 值为z.
例如:
int a = 1, b = 2;
int i = (b>a)?a+b;a-b; // i = 3
int j = (a>b)?a+b;a-b; // i = -1
2. 组合还是派生, 要根据现有类. 从本例中, 头明显是由上述构成的, 因此是几种的组合.
一个很好的办法, 就是不去管是组合还是派生, 只要你创造的类能完成所有功能, 就用哪个, 去尝试, 你会自己找到答案的. 本例亦如此, 鼻子只有嗅觉和呼吸, 头呢, 头能吃饭(靠嘴), 鼻子不能, 从鼻子派生出来还是不能, 因此智能选组合, 必须组合鼻子和嘴, 好了, 头还能听声音看世界(靠耳朵和眼睛), 因此必须再组合耳朵和眼睛.
3. c++中有四个操作符不能是全局域中的重载, 这四个操作符是: =, ->, operator[ ], operator().
这些运算符必然不能为静态成员.
x?y:z 意义是: 如果x成立(为真), 则整个表达式(x?y:z)的值为y; 反之, 如果x不成立, 值为z.
例如:
int a = 1, b = 2;
int i = (b>a)?a+b;a-b; // i = 3
int j = (a>b)?a+b;a-b; // i = -1
2. 组合还是派生, 要根据现有类. 从本例中, 头明显是由上述构成的, 因此是几种的组合.
一个很好的办法, 就是不去管是组合还是派生, 只要你创造的类能完成所有功能, 就用哪个, 去尝试, 你会自己找到答案的. 本例亦如此, 鼻子只有嗅觉和呼吸, 头呢, 头能吃饭(靠嘴), 鼻子不能, 从鼻子派生出来还是不能, 因此智能选组合, 必须组合鼻子和嘴, 好了, 头还能听声音看世界(靠耳朵和眼睛), 因此必须再组合耳朵和眼睛.
3. c++中有四个操作符不能是全局域中的重载, 这四个操作符是: =, ->, operator[ ], operator().
这些运算符必然不能为静态成员.
展开全部
1.唯一的三目运算符,上面已解决问题,不提;
2.有本叫C++primer的,上面讨论了这个问题 组合 have-a 关系,继承是is-a关系,
显然 头 have-a 鼻子,嘴,耳朵等
3。运算符可以用友元或成员函数重载,静态函数不可以
2.有本叫C++primer的,上面讨论了这个问题 组合 have-a 关系,继承是is-a关系,
显然 头 have-a 鼻子,嘴,耳朵等
3。运算符可以用友元或成员函数重载,静态函数不可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1 先判断?前边的条件是否成立,如果成立返回冒号左边的值,否则返回冒号右边的值
2 有父子关系的就派生,有从属关系的就用组合。头是上边几个部分的组合而成的,头即不属于眼睛,也不属于耳朵,所以要用组合。猫属于猫科,所以可以从猫科类派生,不能用组合
3 一般不用静态的
2 有父子关系的就派生,有从属关系的就用组合。头是上边几个部分的组合而成的,头即不属于眼睛,也不属于耳朵,所以要用组合。猫属于猫科,所以可以从猫科类派生,不能用组合
3 一般不用静态的
追问
那我头用派生照样能解决问题啊。
第一问题, 我说的是从右往左体现在哪儿, 不用告诉我怎么用
追答
能解决问题,但是思路不对。
没有从右往左这一顺序,三目运算符照我说的分析就对了,没有其他规则
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
派生的意思是派生子类,你认为鼻子和耳朵是脸的子类吗。你可以把鼻子等对象作为脸类的成员。这是最好的解决方法。
追问
现实确实是这样,谢了!
追答
不用谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询