那就base.base.Printstr()呗,更复杂的情况可以用RTTI
强制类型转换当然是不行的
强制类型转换当然是不行的
解决方案 »
- 急!CString factor[3];定义出错,为什么?
- delete 的问题
- 关于开发word文档控件的讨论?
- 请问打包的问题,我用的是wise iInstallMaster 8.1为什么我在编译的时候会出现错误: “目标路径必须用一个变量开头”
- 怎么用代码改动原来的工程的名字(单文档结构的)在线等待
- 创建有数据库支持项目时,为什么我的DAO不能用(在 appwizard 向导中)?
- 怎样把结构通过send()发到服务器端 [所有相关帖子]
- 按一下键盘,在VC中怎样退出无限循环--急用
- 请教:如何判断打印机是彩色的还是黑白的
- 我把一个结构体写入文件,为什么读出来就成了乱码啦?
- 有一个位图HANDLE.....
- 《软件项目管理心得》一文
public class CSub1:CBase1
public class CSub2:CSub1
相信大家都明白我的意思吧。
用base.base.Printstr也不行呀,还有其他办法吗 ??
那用base.base.Printstr的结果是?
不好意思。
我以前还真没有注意到这个问题,这次一探讨发现这个是很难的,
我想C++可以那么用是C++的语言特性使然,
而java没有提供这种语言特性,所以只能在某些特殊情况下能够达到这种效果。
不知道C#是不是提供了类C++的语言特性?
我想这对C#来说是个很大问题,如果不能调用BASE CLASS的VIRTUAL FUNCTION,那看来一个BASE CLASS最多只派生一个子类为宜,不象VC中那样派生N层的子类,不然就无法与最底层的VIRTUAL FUNCTION通讯了。但有一个笨方法来实现以上功能:
public class CSub2:CSub1
{
public CSub2()
{
}
public override void Printstr (System.WinForms.TextBox textbox)
{
CBase1 b1=new CBase1();
b1.Printstr(textbox); }}
但这样却失去了面向对象的义意了,写起来也很别扭。还有什么高见?