由买买提看人间百态

topics

全部话题 - 话题: 子类
1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
g***l
发帖数: 2753
1
指向子类对象的基类指针能访问子类中重载的虚函数,而不能访问其私有函数。
比如
class CBase
{
public:
CBase();
virtual void Print(){cout<<"base"< };
class CDerived: public CBase
{
public:
CDerived();
virtual void Print(){cout<<"Derived"< void Personal(){cout<<"Derived private owned"< }
1. int main()
2. {
3. CDerived oderived;
4. CBase* pbase=&oderived;
5. pbase->Print();
6. pbase->Personal();
7. }
编译的时间,error: ‘class CBase’ has no member named ‘Personal’in line 6.
我的问题是,
1. 如果是因为pbas... 阅读全帖
s*******e
发帖数: 664
2
☆─────────────────────────────────────☆
ttgg (暂时没有昵称) 于 (Fri Jun 26 17:02:17 2009, 美东) 提到:
请教如下C++代码(左边的数字是行号)
为了使用polymorphism的动态榜定
基类函数被定义成virtual
然后子类里不同的实现
这个我能明白
可是问题是
在有些例子里
子类的对应函数同样被加上了virtual关键字,
请问这是为什么?
我看了网上资料
如果基类里有virtual函数
那么这个类的object就会包含virtual table
而它的所有子类obj也自动包含v-table
所以为什么还要加上virtual修饰呢?
01.class Base
02.{
03.public:
04. virtual void function1() {};
05. virtual void function2() {};
06.};
07.
08.class D1: public Base
09.{
10.public:
11. virtual void function1(
w*******t
发帖数: 62
3
来自主题: JobHunting版 - C++ template 指定T是某类的子类
我开始是这么想的,就直接写T。后来想到子类的虚函数调用,一下子糊涂了。
其实直接写T,然后静态实例化时,子类类型确定,会调用其相应的函数,包括虚函数。
多谢楼上各位!
L*********r
发帖数: 92
4
如果需要重用父类的function实现, 在子类的virtual或special function中调用父类
是一个rule.
normally, 子类不应该care, 也无法访问控制父类的private member, 无论调用什么
method.
y**b
发帖数: 10166
5
父类B,子类D,用父类指针进行操作实现多态B *pB1 = new D;
现在想复制一个子类对象来做其它用途,B *PB2 = new B(*PB1),
但是这样得到的PB2显然被截短了?
若改成new D(*PB1)则编译都通不过。
b******d
发帖数: 794
6
来自主题: Immigration版 - 子类的journal排名怎么查?
大类里面排名不高,怎么查子类的?
ISI里面好像只有我们专业的大类,300多期刊一起,小类划分都挨不上边
k****y
发帖数: 781
7
来自主题: Programming版 - 子类的copy constructor怎么写
base class 有private 变量,子类如果想写一个copy constructor, 怎么能把base部
分的private 成员copy 呢?
k****y
发帖数: 781
8
要实现子类的assignment operator 怎么访问父类部分的的private member从而实现
copy
h**k
发帖数: 3368
9
是在执行子类的destructor之前调用,还是执行之后调用?
u*****u
发帖数: 2651
10
来自主题: _FilmStudies版 - Netflix上的电影子类是咋定的?
Netflix里除了动作片,科幻片,纪录片等大类外,还有子类,比如像:
understated, witty, dark, suspenseful, steaming, etc.
但IMDB, 豆瓣里都没有这个.
不知道Netflix是咋搞出这些分类,每部片子是怎样归类的?
BTW,小柯最近推荐的几部片子都算是understated里的:
http://www.netflix.com/AltGenre?strackid=720788e82b2f0b5f_0_srl&agid=5066&strkid=445127304_0_0
c*********l
发帖数: 3438
11
【 以下文字转载自 CS 讨论区 】
发信人: amrita (Amrita), 信区: CS
标 题: [分享]:一篇文章讲通一半Java《面向对象一家人》
发信站: BBS 未名空间站 (Thu Oct 24 04:15:04 2013, 美东)
原文链接:http://ladder.azurewebsites.net/forum.php?mod=viewthread&tid=121&extra=page%3D1
第一集:Mr.Method
Hi,大家好~~我是Mr.Method,和Mr. Okay是好哥们儿。
在所有面向对象的语言里你都能见到我的身影。不信?你们学编程的时候第一个程序
都是Hello World吧?那就是依靠对我的调用实现的——无论是哪个平台、哪种语言,
你一定调用了在命令行里输出字符串的某个Method。
铁三角
在正式介绍我自己之前,还是先说说我的哥哥和妹妹吧,我们的家庭背景有助于大家
对我有一个更好的了解。我的哥哥(Mr. Class)和小妹(Mr. Field)加上我,我们仨
可是面向对象家庭里绝对的主角、“铁三角”。我们三个之所以称为“铁三角”是因为
... 阅读全帖
a****a
发帖数: 67
12
原文链接:http://ladder.azurewebsites.net/forum.php?mod=viewthread&tid=121&extra=page%3D1
第一集:Mr.Method
Hi,大家好~~我是Mr.Method,和Mr. Okay是好哥们儿。
在所有面向对象的语言里你都能见到我的身影。不信?你们学编程的时候第一个程序
都是Hello World吧?那就是依靠对我的调用实现的——无论是哪个平台、哪种语言,
你一定调用了在命令行里输出字符串的某个Method。
铁三角
在正式介绍我自己之前,还是先说说我的哥哥和妹妹吧,我们的家庭背景有助于大家
对我有一个更好的了解。我的哥哥(Mr. Class)和小妹(Mr. Field)加上我,我们仨
可是面向对象家庭里绝对的主角、“铁三角”。我们三个之所以称为“铁三角”是因为
我们各司其职、配合的非常默契。Mr.Class,他是个很好的组织者,他能把从现实世界
抽象出来的结果良好地组织在一起(这个叫“封装”)——我(Mr.Method)和我小妹
(Ms. Field)被我哥管着(注:被封装在类里)。小妹负责表示我们这个小组织当... 阅读全帖
a****a
发帖数: 67
13
原文链接:http://ladder.azurewebsites.net/forum.php?mod=viewthread&tid=121&extra=page%3D1
第一集:Mr.Method
Hi,大家好~~我是Mr.Method,和Mr. Okay是好哥们儿。
在所有面向对象的语言里你都能见到我的身影。不信?你们学编程的时候第一个程序
都是Hello World吧?那就是依靠对我的调用实现的——无论是哪个平台、哪种语言,
你一定调用了在命令行里输出字符串的某个Method。
铁三角
在正式介绍我自己之前,还是先说说我的哥哥和妹妹吧,我们的家庭背景有助于大家
对我有一个更好的了解。我的哥哥(Mr. Class)和小妹(Mr. Field)加上我,我们仨
可是面向对象家庭里绝对的主角、“铁三角”。我们三个之所以称为“铁三角”是因为
我们各司其职、配合的非常默契。Mr.Class,他是个很好的组织者,他能把从现实世界
抽象出来的结果良好地组织在一起(这个叫“封装”)——我(Mr.Method)和我小妹
(Ms. Field)被我哥管着(注:被封装在类里)。小妹负责表示我们这个小组织当... 阅读全帖
a****a
发帖数: 67
14
原文连接:http://ladder.azurewebsites.net/forum.php?mod=viewthread&tid=121&extra=page%3D1
第一集:Mr.Method
Hi,大家好~~我是Mr.Method,和Mr. Okay是好哥们儿。
在所有面向对象的语言里你都能见到我的身影。不信?你们学编程的时候第一个程序
都是Hello World吧?那就是依靠对我的调用实现的——无论是哪个平台、哪种语言,
你一定调用了在命令行里输出字符串的某个Method。
铁三角
在正式介绍我自己之前,还是先说说我的哥哥和妹妹吧,我们的家庭背景有助于大家
对我有一个更好的了解。我的哥哥(Mr. Class)和小妹(Mr. Field)加上我,我们仨
可是面向对象家庭里绝对的主角、“铁三角”。我们三个之所以称为“铁三角”是因为
我们各司其职、配合的非常默契。Mr.Class,他是个很好的组织者,他能把从现实世界
抽象出来的结果良好地组织在一起(这个叫“封装”)——我(Mr.Method)和我小妹
(Ms. Field)被我哥管着(注:被封装在类里)。小妹负责表示我们这个小组织当... 阅读全帖
a****a
发帖数: 67
15
原文:http://ladder.azurewebsites.net/forum.php?mod=viewthread&tid=121&extra=page%3D1
第一集:Mr.Method
Hi,大家好~~我是Mr.Method,和Mr. Okay是好哥们儿。
在所有面向对象的语言里你都能见到我的身影。不信?你们学编程的时候第一个程序
都是Hello World吧?那就是依靠对我的调用实现的——无论是哪个平台、哪种语言,
你一定调用了在命令行里输出字符串的某个Method。
铁三角
在正式介绍我自己之前,还是先说说我的哥哥和妹妹吧,我们的家庭背景有助于大家
对我有一个更好的了解。我的哥哥(Mr. Class)和小妹(Mr. Field)加上我,我们仨
可是面向对象家庭里绝对的主角、“铁三角”。我们三个之所以称为“铁三角”是因为
我们各司其职、配合的非常默契。Mr.Class,他是个很好的组织者,他能把从现实世界
抽象出来的结果良好地组织在一起(这个叫“封装”)——我(Mr.Method)和我小妹
(Ms. Field)被我哥管着(注:被封装在类里)。小妹负责表示我们这个小组织当前
... 阅读全帖
y**b
发帖数: 10166
16
来自主题: Programming版 - 该怎么设计这个类?
父类B,
子类D1,D2,D3,
子类有很多相同的操作,也有几个不同的操作,比如D1op, D2op, D3op.
现在有一个C类中包含了B类指针,来操作其三个子类的对象(混合出现),
也就是有这种情况:
B *pB,
pB->D1op
pB->D2op
pB->D3op
显然,编译通不过,因为B类并没有定义这些操作。
想了几个办法:
1. 在B类中用虚函数定义这些操作,三个子类分别覆盖,如果没有动作就为空。
但这带来一个问题:B类中接口太宽,本来三个子类各自不同的操作,结果
父类反而都得有;如果再添加个子类及不同操作,那B类又得添加接口。感觉
特别不合理,这叫什么问题?
2.使用RTTI和向下转换dynamic_cast,B类转换成不同子类,可是这个转换要
做很多检测,还不一定转换成功;倒是static_cast反而明确一些,也最简单
可行?
3.碰巧C类使用B类三个不同子类(每次只用一个子类)作为组成部分,可以使用
类模板,也就是说用B类三个不同子类作为模板形参来构造C类。这样C类其实
也形成了三个子类,分别对应B类的三个子类,但是失去了使用B类的便利。
还是这几种办法根本就不对?... 阅读全帖
y**b
发帖数: 10166
17
来自主题: Programming版 - 该怎么设计这个类?
我是这样想的:能抽象出共性的尽可能抽出来放在父类,但是具体的差别还是放在子类
,这个设计应该算正常的。
但是用到子类那些有具体差别(其实概念上还算很接近)的接口时,不应该通过父类指针
来操作。
比如有30个接口抽象到父类了,还有三五个属于子类不同的属性。那30个接口采用父类
指针(比如含有大量父类指针的一个链表)进行操作非常方便,就那三五个子类特有的接
口得通过子类指针来操作。
我的问题好像在于:生成子类对象的时候直接采用了父类指针,结果遇到子类特有属性
的时候就得向下转换。如果生成子类对象的时候全部采用子类指针,遇到共性的时候将
这些子类指针(或者其容器)传给父类指针,好像问题就解决了;代价就是在C类中多维
护几个子类指针的容器并把它们适当地传给父类指针的容器,但是不会遇到向下转换的
问题。好像这样才是合理的做法?
之所以出这个问题,是因为原来程序只有B类,后来将B类改成D1类,同时添加D2类,再
重写B类,也为以后添加D3,D4做些准备。C类里面就一直想着偷懒用原来代码不变,其
实稍微改改就更合理了。
s*****1
发帖数: 134
18
来自主题: JobHunting版 - NeAp 面试题一道
title公司少了两个字母,自己猜~
onsite, 太郁闷了,总共三轮面试,两轮烙印,没有coding,就是关于C++/Java等犄角
旮旯的问题,感觉就是要fail 我。现有一道我实在做不出,就猜了,大家看看吧:
C++的。假设父类有一个method叫foo(没有virtual),子类有一个method,override了
那个foo. 然后子类指针(注意是子类指针),指向父类空间,然后call 那个foo,调用
的是父类还是子类的foo?
我的回答是子类指针到父类需要cast的,而且也没一定可以行啊。他说假设可以,
然后我就猜了个子类的,其实我也不知道,回来一想可能是父类的,因为cast成功了。
然后他们看到我简历上写着C#,就问了个C#的术语,神马是Box 和 UnBox. 晕~
供参考,就当积攒RP吧~
b***i
发帖数: 3043
19
来自主题: Programming版 - 老年转行工程师问问C++11基本问题
【新问题】
4. boost::format的返回值是string吗,我应该用string&吗?
比如: std::string& str = boost::format(......);
std::cout< throw ... (str);
这样可以省掉一个复制吧?
5. 类UUU的static函数里面
static std::map un= {{c1, &DD:DDDD1()}, {c2, &DD:DDDD2()},};
...
就是说,一个静态变量定义在函数里面。我想可以避免程序启动时各个编译单元启动顺
序的问题。这里的DD:DDDD1()就是一个库里面DD类的static函数,返回一个变量的参考。
今天reviewer说要我改成把un放到类UUU这一层去,而不是在函数里面。这样就不能避
免启动问题了。而且很麻烦,因为不是简单的整数,浮点数等,是不知道怎么实现的类
(有头文件)。大家说我的做法对不对?另外我这样做是照着其他人写的抄的。有一个
人告诉我这样写好
6. 搜索rvalue reference vari... 阅读全帖
b***i
发帖数: 3043
20
来自主题: Programming版 - C++的exception大家常用吗?
很多人不理解异常,是因为没有进行大规模的程序编写。当你的程序超过一万行,非常
复杂的时候,异常处理就非常方便了。
另外一点,异常并不是系统出错了,而是你自己产生错误信号和抓住错误信号。比如,
你的某个类的虚函数被子类实现了,每个子类都要用throw产生错误信号,而基类
的函数通过try调用子类实现的虚函数,并catch子类产生的错误信号,然后统
一处理。通过这种方式,程序实现了不同于正常return返回的方式,而是通过t
hrow被上面catch住,不用层层返回函数堆栈。错误信号Exception
也是你自己定义的类,其中可以包含所有出错的原因,子类的名字等信息,让错误处理
非常方便。
找几个高手的程序源代码,看明白,修改,就懂了。
c*********e
发帖数: 16335
21
来自主题: Programming版 - 该怎么设计这个类?
HumanBeing 有3个子类:Male, Female, Gay。
你这个是用if...else把不同的子类分开,如果子类是Male,这么做;如果子类是Female,
这么做. 那么,如果再要加一个新的子类,Transgender,你的很多函数要重新写了,比
如下面这个BangWith()函数。况且,gay,可以是Male, or Female.
struct Female : public HumanBeing {
virtual void BangWith(HumanBeing& that) {
HumanBeing::BangWith(that);
Male* male = dynamic_cast (&that);
if (male) {
pussy->Eat(male->ShowStuff());
} else {
Female* female = dynamic_cast (&that);
if ... 阅读全帖
w******1
发帖数: 520
22
来自主题: JobHunting版 - Amazon Phone Interview (Amazon 电话 面经)
1. What does Abstract class do? Why?
抽象类是专门用来被子类重载的,你可以定义一些方法在抽象类中,由各个子类实现,
这样你对子类的操作就方便多了。比如:
tGraph是抽象类,tLine、tCircle......等是他的子类
你可以把tLine、tCircle......作为tGraph来用,主要为了实现多态性
Abstract classes allow for default default function definition. This means
that whatever class extends the abstract class will have access to this. If
we have a base class where all the classes will perform the same function,
then we can define that in our Abstract class.
Abstract classes allow you to provide defau
n**********2
发帖数: 648
23
【 以下文字转载自 Programming 讨论区 】
发信人: xykkkk (asdf), 信区: Programming
标 题: 老码农冒死揭开行业黑幕:如何编写无法维护的代码(zz)
发信站: BBS 未名空间站 (Fri Nov 28 13:28:27 2014, 美东)
如何编写无法维护的代码
让自己稳拿铁饭碗 ;-)
– Roedy Green(翻译版略有删节)
简介
永远不要(把自己遇到的问题)归因于(他人的)恶意,这恰恰说明了(你自己的)无
能。 — 拿破仑
为了造福大众,在Java编程领域创造就业机会,兄弟我在此传授大师们的秘籍。这些大
师写的代码极其难以维护,后继者就是想对它做最简单的修改都需要花上数年时间。而
且,如果你能对照秘籍潜心修炼,你甚至可以给自己弄个铁饭碗,因为除了你之外,没
人能维护你写的代码。再而且,如果你能练就秘籍中的全部招式,那么连你自己都无法
维护你的代码了!
(伯乐在线配图)
你不想练功过度走火入魔吧。那就不要让你的代码一眼看去就完全无法维护,只要它实
质上是那样就行了。否则,你的代码就有被重写或重构的风险!
总体原则
Quidquid... 阅读全帖
z****e
发帖数: 2024
24
来自主题: Programming版 - 老调重弹 virtual destructor
请问,virtual dtor 以后,下面派生子类,派生子类的派生子类,子子孙孙,他们的
dtor都自动virtual 了么?
还是,无论当前类的基类是不是有virtual dtor,只要从当前类,想派生子类,必须把
当前类的dtor显示声明为virtual?
早谢。
x****k
发帖数: 2932
25
如何编写无法维护的代码
让自己稳拿铁饭碗 ;-)
– Roedy Green(翻译版略有删节)
简介
永远不要(把自己遇到的问题)归因于(他人的)恶意,这恰恰说明了(你自己的)无
能。 — 拿破仑
为了造福大众,在Java编程领域创造就业机会,兄弟我在此传授大师们的秘籍。这些大
师写的代码极其难以维护,后继者就是想对它做最简单的修改都需要花上数年时间。而
且,如果你能对照秘籍潜心修炼,你甚至可以给自己弄个铁饭碗,因为除了你之外,没
人能维护你写的代码。再而且,如果你能练就秘籍中的全部招式,那么连你自己都无法
维护你的代码了!
(伯乐在线配图)
你不想练功过度走火入魔吧。那就不要让你的代码一眼看去就完全无法维护,只要它实
质上是那样就行了。否则,你的代码就有被重写或重构的风险!
总体原则
Quidquid latine dictum sit, altum sonatur.
(随便用拉丁文写点啥都会显得高大上。)
想挫败维护代码的程序员,你必须先明白他的思维方式。他接手了你的庞大程序,没有
时间把它全部读一遍,更别说理解它了。他无非是想快速找到修改代码的位置、改代码
、编译,然后就能交差,... 阅读全帖
p***o
发帖数: 1252
26
来自主题: Programming版 - 该怎么设计这个类?
你这属于没抽象好。
如果子类参数不同就不应该由父类*直接*管理,参数可以交给子类管理最好,
不行的话可以考虑把参数装到一个map里由父类传给子类。
父类能在同一个函数里调不同子类的不同函数那说明他们是有联系的,有联系
就可以抽象出共性来。
e******a
发帖数: 176
27
来自主题: Science版 - 怎么没有人RE呢?
大概的问题就是:
C++里面一个子类C继承于父类P,那么
如果子类里面定义了和父类里面名称一样的函数f
的话,该子类C就不再继承父类里面的f了。
尽管子类和父类的f拥有不同类型的参数,也不能通过
函数重载(overload)实现。
为什么呢?
C*****e
发帖数: 164
28
auto版的精华区内容繁多,目录结构复杂.精华区内有很多值得学习的好东西,版上的很多
问题,只要大家花点时间去读精华区,大部分都可以得到解决.
不过精华区经过了历代版主,结构已经变的越来越复杂了,既不利于网友的查询,也不利于
精华区的整理, 我打算对精华区的目录结构做一下调整, 调整的目标为:
1.简介,尽量避免冗余信息.
2.方便阅读: 主目录和第一级子目录在telnet下不超过一屏, 目录级数尽量不超过3级.
对目录结构加以说明,便于网友查询
3.方便整理: 对于主要问题,有明确的分类,对于大类中难于分类的,并入其他类一项,对
于子类中难于分类的,并入其他子类一项.
4.保持继承性: 对目录结构加以说明, 对于归在其他类中的内容,当同意主题的帖子比较
多时,可以考虑增加类别和子类.
5.其他...(欢迎补充)
精华区目录结构调整方案:
1.修改目前的精华区目录结构,删除或者合并冗余的目录,增加新的目录.
2.重新定义精华区目录结构.然后重新整理精华区.
两个方案各有优缺点.方案二更容易从根本上解决问题,方案一相对来讲比较省时,省事.
现就这一调整征求大家的意见: 是否有必要调整精华
f*******s
发帖数: 440
29
太谢谢了。
还给出这么详细的代码。
还有个问题,
这里的多态性体现在哪里?
具体说:
我的理解是 oneFormat在new的时候
就要根据要存储类型
比如参数type = Format 1
来生成对应的子类实例。
而另外一个办法就是把type参数传到父类storeFormat的
store函数里面去,
由父类根据type来生成子类实例
这样多态性就没体现出来了
好处是text类就不必知道什么时候new 什么子类的实例了
谢谢
a********m
发帖数: 15480
30
来自主题: JobHunting版 - 请问这是什么level的面试题
简单说几句。板上大牛多,俺板门弄斧下,再说大牛们估计也觉得说这个太简单了。如
果有错误请指出。谢先。另外俺用c/c++的前几年也不是很理解很多细节,只管记语法
,或者有些理解错误,所以刚开始用c++的童鞋不清楚这个的话也是正常的。
首先要知道c++对象和structure除了缺省private以外没有区别。都是一堆成员变量组
成一个内存块。
但是如果类有一个虚函数以后每个对象会在开头多一个指针变量。现在的机器和编译器
一般来说是4个字节。这个指针指向这个类的虚函数表,而且所有的同类对象的指针都
指向同一个表。虚函数调用是先去这个表查询一下(编译器会分配一个下标),调用函
数实际类似 _vtable[下标](.....),其中_vtable 相当于(*(void*)pobj).
编译器编译虚函数的时候不是生成函数跳转,而是生成一个下标。对于同一个函数,基
类和子类有不同的虚函数表,但是有相同的函数下标。所以做_vtable[下标]动作的时
候虚函数就是子类的的实际函数了,只要指针本身是正确的(指向子类或者基类,而不
是强制转成乱七八糟的指针)。总的来说编译器负责产生下标,而对象负责提供一... 阅读全帖
a********m
发帖数: 15480
31
来自主题: JobHunting版 - 请问这是什么level的面试题
简单说几句。板上大牛多,俺板门弄斧下,再说大牛们估计也觉得说这个太简单了。如
果有错误请指出。谢先。另外俺用c/c++的前几年也不是很理解很多细节,只管记语法
,或者有些理解错误,所以刚开始用c++的童鞋不清楚这个的话也是正常的。
首先要知道c++对象和structure除了缺省private以外没有区别。都是一堆成员变量组
成一个内存块。
但是如果类有一个虚函数以后每个对象会在开头多一个指针变量。现在的机器和编译器
一般来说是4个字节。这个指针指向这个类的虚函数表,而且所有的同类对象的指针都
指向同一个表。虚函数调用是先去这个表查询一下(编译器会分配一个下标),调用函
数实际类似 _vtable[下标](.....),其中_vtable 相当于(*(void*)pobj).
编译器编译虚函数的时候不是生成函数跳转,而是生成一个下标。对于同一个函数,基
类和子类有不同的虚函数表,但是有相同的函数下标。所以做_vtable[下标]动作的时
候虚函数就是子类的的实际函数了,只要指针本身是正确的(指向子类或者基类,而不
是强制转成乱七八糟的指针)。总的来说编译器负责产生下标,而对象负责提供一... 阅读全帖
f**********2
发帖数: 2401
32
来自主题: JobHunting版 - 报个A家OFFER,回馈版上
2.1 Abstract类可以有具体实现方法,interface接口没有,只能decalre方法,不能
implement。abstract类可以有abstract方法,也可以有非abstract的。interface中的
方法都实际是abstract的。子类只能继承一个abstract类,但是可以implement多个
interface。
2.2 overloading(in java)就是在一个类中有多个方法。方法有不同的参数个数或者
参数类型区别。overriding是base class和derived class之间的多态。当子类有和父
类一样的方法(相同的名称和参数),就是overriding。子类中,父类的方法被
override了,屏蔽了。
2.3 “==”是java的operator,判断int double数据是否相等;equlas是类的方法,
比较对象的内容是否相同。(不很确定)
2.4 想到递归比较两个树的根节点,和其左右子节点。
public boolean compareTree(TreeNode A, TreeNode B)
{
if (A.data!=... 阅读全帖
r*******e
发帖数: 7583
33
来自主题: JobHunting版 - 一个面经
纯虚函数
如果是C++,子类要实例化的话必须实现父类的pure virtual function
否则编译都过不了啊,会在创建子类实例的时候报错
就算能过编译的话,子类的vtable的那个函数entry是null,估计调用会crash

free
u***************r
发帖数: 11227
34
来自主题: WmGame版 - unidentified_title
发信人: bengbengtu( 嘤嘤), 信区: WmGame
标题: 《奇迹暖暖》:一款女性换装游戏的失败与伟大
发信站: BBS未名空间站(Wed Aug 9 13:32:50 2017,GMT)
8月3日,如同过往一样,《奇迹暖暖》在官博提前公布了第二天将会上线的充值活动详
情,以及新版本增加的内容,包括新的联盟章节和新的特效服装。当天晚上,我所在的
联盟盟主在QQ群里@所有人宣布:“明天统一打第十章,不要想着坐等渔翁之利。每个
人做完新关卡后私信我分数截图,快速过关别的章节的人强制买齐次数!”随后她在群
里贴出了紧急制作的攻略,按照攻略穿出来的“女儿”能以高分通关,却与换装游戏主
张的美丽优雅无关。
而这就是《奇迹暖暖》,一款时下中国最火爆的女性换装游戏花了两年时间也未能解决
的矛盾。
■ 想美还是想赢?选择权并不在玩家手中
世界上没有绝对的自由,玩游戏也一样。开放如《魔兽世界》,为休闲玩家、PvE玩家
和PvP玩家各自规划了成长路线,你还是要想办法不断提升自己的等级,才能体验到对
应的乐趣。你会选择什么样的玩法取决于你的性格,而好的游戏设计会满足你内心深处
不曾明说的需求。... 阅读全帖
k**********i
发帖数: 8706
35
不错啊!我们公司就有个老码农这么干:
子类
对于编写无法维护代码的任务来说,面向对象编程的思想简直是天赐之宝。如果你有一
个类,里边有10个属性(成员/方法),可以考虑写一个基类,里面只有一个属性,然
后产生9层的子类,每层增加一个属性。等你访问到最终的子类时,你才能得到全部10
个属性。如果可能,把每个类的声明都放在不同的文件里。
使用三维数组
大量使用它们。用扭曲的方式在数组之间移动数据,比如,用arrayA里的行去填充
arrayB的列。这么做的时候,不管三七二十一再加上1的偏移值,这样很灵。让维护代
码的程序员抓狂去吧。
o**2
发帖数: 168
36
来自主题: Java版 - 工作中遇到的并行处理问题
即使同一个thread,如果你在constructor里call其他object,然后那个object又
access回来,还是有拿到一个incomplete的对象的机会的。在并发下,可能性就更大了
一点。
我说的“instance变量都guarded by a lock"是引用原书,是有context的,就是以第
三章的标准去衡量我写的Predictor。如果变量都guarded by a lock,那意味着别的
thread不可能拿到一个incomplete的对象(即变量)。
我的确没有考虑到子类继承,一是我写的Predictor没有子类,二是考虑子类的话,那
复杂度就大了,我估计基本没有什么原则上安全的东西了。我就撤退了,留给你和发考
题了 :)

reference,
cass
q***s
发帖数: 2243
37
来自主题: Programming版 - 还请教一个关于C++的问题
做一个程序,一个父类(A),下面有几个子类(比如B),所有子类的实例都放在一个
vector的集合中,集合中的对象当然都是父类型的了。但是我发现问题,如果从集合中
取出实例,这时就不能调用子类的override的函数了(比如tellMe)。下面是我的一个
测试程序,请各位指点一下:
// main.cpp
#include "A.h"
#include "B.h"
#include
using namespace std;
int main()
{
vector vec;

for(int i=0; i<10; i++)
{
A* a = new B();
a->tellMe();
vec.push_back(*a);
}
for(int i=0; i<10; i++)
{
((A)vec[i]).tellMe(i*8);
}
return 0;
}
====================
// A.h
#ifnd
t****t
发帖数: 6806
38
来自主题: Programming版 - 类设计的一个问题
为什么会需要通过基类指针得到子类里增加的数据成员? 这个本身就有问题. 子类独有
的成员应该通过子类的方法来获得/处理.
b***i
发帖数: 3043
39
来自主题: Programming版 - Exception
看这么多人讨论热火朝天,不如给你举个例子吧
一个BASIC解释程序,有个语句Statement的基类,然后各个语句实现了子类。子类必须
实现两个函数,doParse和execute,非别对应编译和执行过程。那么,doParse应该
throws SyntaxError,而execute应该throws RuntimeError。简单的做,就是在new
SyntaxError(...)的时候, 把行号和为什么错了放在构造函数里面,抛出异常。那么哪
里catch呢?程序应该有一个线程里面执行每一行程序,这个函数是所有子类execute()
的caller
..... throws RuntimeError {
try{
statement = statement.nextStatement();
statement.execute();
} catch(RuntimeError ex){
...此处并不printstack,也不强制退出,而是显示哪一行错了,为什么错了,然后
线程结束,程序回到编辑状态,用户可以修改,再次执行这个线程
}
}
总结,为什么抛异常?为了... 阅读全帖
b***i
发帖数: 3043
40
来自主题: Programming版 - Exception
看这么多人讨论热火朝天,不如给你举个例子吧
一个BASIC解释程序,有个语句Statement的基类,然后各个语句实现了子类。子类必须
实现两个函数,doParse和execute,非别对应编译和执行过程。那么,doParse应该
throws SyntaxError,而execute应该throws RuntimeError。简单的做,就是在new
SyntaxError(...)的时候, 把行号和为什么错了放在构造函数里面,抛出异常。那么哪
里catch呢?程序应该有一个线程里面执行每一行程序,这个函数是所有子类execute()
的caller
..... throws RuntimeError {
try{
statement = statement.nextStatement();
statement.execute();
} catch(RuntimeError ex){
...此处并不printstack,也不强制退出,而是显示哪一行错了,为什么错了,然后
线程结束,程序回到编辑状态,用户可以修改,再次执行这个线程
}
}
总结,为什么抛异常?为了... 阅读全帖
q*c
发帖数: 9453
41
来自主题: Programming版 - [吐槽]抽象真是不一定好
简单的就是最好的, 但是搞软件的天生就有要复杂化的倾向。 这是人的劣根性, 很
难克服。
我还看到有人搞 stream reader. 夫类里面通过子类读, 子类重载那个方法, 然后子
类里面又调用父类里面的方法, 然后那些方法又在各个子类里面重载。。。读代码就
喝吃屎一样。
为啥这是人的劣根性? 因为 99% 的人都很自我中心, 只要不被强制, 就肯定是优先
于写的爽, 不会管没有上下文的别人读的感受如何。 而且写的爽容易, 特别是使用
了各种技巧, 更有精美组合成功的成就感。 可是要让程序读的爽那就很难, 而且没
成就感。
y**b
发帖数: 10166
42
来自主题: Programming版 - 该怎么设计这个类?
原来是典型的依赖倒置原则,父类不应该依赖于之类。

1. 在B类中用虚函数定义这些操作,三个子类分别覆盖,如果没有动作就为空。
但这带来一个问题:B类中接口太宽,本来三个子类各自不同的操作,结果
父类反而都得有;如果再添加个子类及不同操作,那B类又得添加接口。感觉
特别不合理,这叫什么问题?
b***i
发帖数: 3043
43
还是那个项目,现在我看里面的结构,有一个函数
play(...){
try {
... call(); //这是定义在一个抽象类的函数,众多子类实现该定义

} catch(MyError my){
...
}
}
然后,在某些子类的call里面,我没有看到throws声明。
我把自己定义的一个call里面加入了Thread.sleep,目的就是如果interrupt了,就把线
程退出。发现eclipse说需要throws InterruptedException, 或者要自己catch。那么
为什么在众多的子类的call函数里面,MyError没有catch,也没有throws声明,只需要
在最外围的play那里catch?
我按照eclipse的提示,一步一步增加throws,结果已经增加了十几个了,不敢继续改
,因为改太多了。为什么原来的MyError不用这么做呢?我是不是需要被
InterruptedException截获,然后放在MyError里面,在play里面一起处理?我这样处
理,线程如果被中断,是可以退出的。我的目的就是如... 阅读全帖
s********n
发帖数: 650
44
来自主题: _Vegetarianism版 - [转载] 素食者起步问答
为什么成为素食者?
成为素食者的理由同素食者一样多;它完全是一个个人的独自的决定。
但是在一项素食社区之内所做的调查中,多数的人说他们放弃肉和鱼是因为在道德上
不赞成杀害动物,或者是因为他们反对为了食物饲养和杀害动物的方法。随着人们愈
来愈认识到健康食品的重要性,许多人也因为素食与营养学家及医生所推荐的低脂肪
,高纤维的饮食相符合而成为素食者。当人们更多地意识到饲养动物作为食用肉正对
环境产生影响时,关心环境也是另一个因素。
或者你也许关心有关世界食物资源的情况。把饲养动物供食用的土地资源改成种植庄
稼,可以直接供养更多的人。
可看一下统计方面的信息以便进一步了解详细情况。
关于素食主义的常见问题
用这些答案回答那些关于素食主义的最通常的问题,让你自己的头脑获得休息,或者
是回答那些来自吃肉的朋友的疑问。
什么是素食者呢?
素食者就是不吃肉、鱼、家禽或任何屠宰场的副产品诸如动物胶的人。素食者以谷物
、豆类、坚果、种子类、蔬菜和水果为日常饮食;蛋、牛奶和奶制品可以选择吃或不
吃。不吃任何含有奶制品或蛋的素食者叫做严格的素食主义者。
素食不困难吗?
是的。素食食品在商店和餐馆普遍可以看到,... 阅读全帖
m*********k
发帖数: 10521
45
来自主题: GreatPit版 - 『大事件』二手市场行业分析
近段时间以来,由于二手市场出现了一个版主,大家都还有一点不太适应。帖子数量的
急剧减少,也引起了大家的强烈反应。目前二手版正在恢复正常状态中。
为了稳定市场,为了促进交易的顺利进行,现在将二手市场的一些情况给大家做一下简
单的分析。
最近一个星期以来,出现了ipad3的求购信息,其中白色款的数量需求比较大,价格基
本稳定在670—770$.
佳能产品的需求量一直在市场中占了很大的份额,价格基本都在125到150美元之间。而
是s100,此型号的产品价格异军突起,高到330美元。
Epson的产品一直以来也是二手市场中电子类产品需求量比较大的类别,产品价格基本
维持在100到200美元之间。
电子产品类的信息中还有一个需求量较大的品牌hp,价格基本都在280美元以上,在电
子类产品中价格相比来说较高。当然作为竞争者的dell,出现高达500美元的高价格。
Gc卡还有point的求购价格也基本维持在市场稳定价格水平,在0.95美元之间徘徊。
而最近中美之间的飞机票还有里程的求购数量,也因为假期的临近出现了一个小高峰。
值得注意的是,由于前段时间的大小萝卜的泛滥,最近一周以来数量减少,价格直... 阅读全帖
c***s
发帖数: 70028
46
截至去年底,淘宝800万活跃商家发布了7.96亿件商品,涵盖100个不同的产品类目、2000个子类目
你的生活离得开淘宝吗?
沈玲的答案是No。站起身来随便数一数,脚上的高跟鞋、身上的连衣裙、头上的发夹,统统都是淘宝上买的。
沈玲是渝中区一家IT公司的营销主管,也是一个标准的淘宝剁手党,每年网购花费近十万。从最开始在淘宝上买书、衣服、鞋、包、化妆品以及日用品等,到后来新家装修购买开关、龙头、淋浴、灶具、家电……现在,她连进超市都觉得麻烦,直接在淘宝上买大米、新鲜水果和进口牛奶,享受送货上门服务。
淘宝剁手党的一天
每天上午8点一刻左右,沈玲第一个来到办公室,在启动办公电脑的同时,她都会打开手机淘宝看看,聚划算的团购今天又有些什么新货。
浏览了一圈,沈玲相中了一款原价299元的电烤箱,当天限时购只要99元。随后她把团购链接分享到自己的微博上,让粉丝好友也可以购买。
中午12点过,沈玲接到了两个快递电话,这是她前两天在淘宝上购买的睡衣和零食到货了。沈玲告诉记者,每到换季的时候,她都会在淘宝上购置一堆当季“新品”,平均每天都有两三个包裹,多的时候五六个。
傍晚6点下班,沈玲拎着两袋战利品高高... 阅读全帖
D*****i
发帖数: 8922
47
上图是东亚主要民族的Y-DNA haplogroup的分布百分比图。从图上可见,汉族跟同属汉
藏语系的苗族、瑶族、藏族、羌族、土家族、彝族和哈尼族都含有较多的O3和O2成分。
补充说明一下,大约6000年前,先夏集团(主体是O3-M134)和先羌集团(主体是O3-
M133)在陕甘一带分家后,先羌集团向青藏高原迁徙,沿途分裂为藏族、羌族、彝族等
,并与当地的带D、K等基因的部落融合。后来的炎黄集团的主体是O3-M134和O3-M122,
后来又融入荆蛮集团(主体是O3-M7,也是苗族、瑶族等的祖先)及其他部落,由此形
成的汉族人口超过一半以上是O3基因型。
通古斯语族的满族、锡伯族、鄂伦春族、赫哲族,以及蒙古语族的蒙古族、达斡尔族,
都含有相对较多的C成分。C对汉族的基因池子贡献很小,远不及O3对通古斯语族和蒙古
语族的贡献。所以与其说北方少数民族搞浑了汉族的血统,不如说是汉族搞浑了北方少数民
族的血统。
日本人的基因型是D、O2和O3三足鼎立。朝鲜人、越南人中超过一半以上是O3和O2,O3
的比例略少于汉族。
台湾原住民中绝大部分是O1基因型。维吾尔族的基因来源复杂多样,符合他们黄白... 阅读全帖
D*****i
发帖数: 8922
48
第一图和第二图的统计分类不一样。第一图中的O3在第二图中分为3个子类,而第一图
中的K和N(N是K的子类)在第二图中合并为一个。
R******9
发帖数: 39
49
我的观点是星条旗和五星旗要一起打!
“美国华人”这个词语代表的群体实际上有很多子类,有一百多年前开始直至新中国成
立期间自中国本土移民的(多数已延续几代,现在则是ABC),有改革开放后从大陆走
出的留学生和新移民,有来自香港和澳门的华人,有来自台湾的政治观点和族群认同可
能都不同的华人(比如有的认为自己是Taiwanese,而与任何中国概念做彻底的切割,
有些港人也是这种想法)。各子类之间其来源、政治观点等相差极大,很多甚至完全针
锋相对,各子群体之间对于自身在美国的身份定位可能差别极大,有的人是完全的。
但是要强调的是,美国主流白人在歧视华人时,会去分辨、了解你是从哪里来、有什么
样的政治观点和你自己心中的定位吗?你拼命强调自己是Taiwanese、是来自英国前殖
民地的香港人、是在土生土长的美国人、是毕业于常青藤名校的勤奋肯干的留学生、是
持不同政见者、是被迫害的法轮功学员等等,这些理由有用吗?漂不掉身上这张黄皮,
你就永远是“主流白人”心中无差别的“华人”和”中国人“。 在这种性质的歧视面
前,所有的华人都有完全一致的利益。
要争取改变歧视和政治上的边缘性,最有效的途径是手中的选... 阅读全帖
b****u
发帖数: 1130
50
来自主题: Military版 - 奥运会就和春晚一样
越来越难看。
竞技体育全部用药,就是查的出查不出的问题,多少的问题,实际变成生物医学制药大
赛。
体操完全不能和20年前比,运动员又搓又顿,不如看猴子猩猩玩杂耍。以前那个霍尔金
纳那样的运动员再也看不到了。
举重子类的,昨天看了一下,太恶心了,简直就是灭绝人性。
射击子类的基本就是打一个固定目标,远不如CS比赛好看。
奥运会好无聊啊....
1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)