我非常肯定我理解了向上转换和向下转换之间的一般区别,尤其是在C ++中。 我明白,我们不能总是downcast,因为将基类指针投射到派生类指针会假定指向的基类对象具有派生类的所有成员。 在这个学期的初期,我的教授告诉全class学生,在C ++中有时候也是非法的,但是我似乎错过了在笔记里为什么不记得什么时候发生的事情。 任何人都可以告诉我什么时候在C ++中使用upcast是非法的?
第1,2,3,4行有什么区别? 我什么时候使用每个? 为什么第3行打印constructor Foo和第7行返回一个错误,第8行不? #include <iostream> using namespace std; class Foo { public: Foo ( ) { cout << "constructor Foo\n"; } }; class Bar { public: Bar ( Foo ) { cout << "constructor Bar\n"; } }; int main() { /* 1 */ Foo* foo1 = new Foo (); /* 2 */ Foo* foo2 […]
可能重复: 什么时候使用点,箭头或双冒号引用C ++中的类的成员? 我创build了一个叫Kwadrat的类,里面有三个int字段。 代码块给了我build议,我可以通过:: ,进入对象的领域. 和-> 。 箭是唯一的工作,但为什么? 这三者有什么区别? #include <iostream> using namespace std; class Kwadrat{ public: int val1, val2, val3; Kwadrat(int val1, int val2, int val3) { this->val1 = val1; //this.val2 = val2; //this::val3 = val3; } }; int main() { Kwadrat* kwadrat = new Kwadrat(1,2,3); cout<<kwadrat->val1<<endl; cout<<kwadrat->val2<<endl; cout<<kwadrat->val3<<endl; return 0; }
我有一个__init__函数的类。 如何创build一个对象时从这个函数返回一个整数值? 我写了一个程序,其中__init__命令行parsing,我需要有一些值设置。 它可以将其设置为全局variables并在其他成员函数中使用它? 如果是这样怎么办? 到目前为止,我在课堂外宣布了一个variables。 并设置它一个function不反映在其他function?
作为Java的新手,我很困惑于类和类的概念。 例如,如果对象"Hello World!" 属于String 类还是类 String ? 或者也许两个?
我需要暴露一个类的实例的“ 被映射? ”状态。 结果由一个基本的检查决定。 这不是简单地暴露一个领域的价值。 我不确定应该使用只读属性还是方法。 只读属性: public bool IsMapped { get { return MappedField != null; } } 方法: public bool IsMapped() { return MappedField != null; } 我已阅读MSDN的属性和方法之间的select,但我仍然不确定。
为什么这个代码不能编译? public boolean isOf(Class clazz, Object obj){ if(obj instanceof clazz){ return true; }else{ return false; } } 为什么我不能将类variables传递给instanceof ?
我正在为我的新网站构build一个用户类 ,但是这次我正在考虑将它构build得有点不同。 我知道C ++ , Java甚至是Ruby (可能还有其他的编程语言)允许在主类中嵌套/内部的类,这使得代码更加面向对象和组织。 在PHP中,我想要这样做: <?php public class User { public $userid; public $username; private $password; public class UserProfile { // Some code here } private class UserHistory { // Some code here } } ?> 在PHP中可能吗? 我怎样才能做到这一点? UPDATE 如果不可能,未来的PHP版本可能会支持嵌套类吗?
这是我有的代码: public class StupidClass { static { System.out.println("Stupid class loaded!"); } } 和我有的testing,我分开运行。 import org.junit.Test; public class StupidTest { @Test public void foo() throws ClassNotFoundException { final Class<?> stupidClass = Class.forName("StupidClass"); System.out.println(stupidClass.getSimpleName()); } @Test public void bar() throws ClassNotFoundException { final Class<StupidClass> stupidClassClass = StupidClass.class; System.out.println(stupidClassClass.getSimpleName()); } } 当我运行testingfoo时,我会看到: Stupid class loaded! StupidClass 但是当我运行testing栏时,我所看到的是: StupidClass […]
我可以在不添加抽象方法的情况下定义抽象类吗?