问题标签 [derived-class]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 为什么派生类构造函数总是要访问基类构造函数?
我在我的一篇试卷中看到了这个问题:
为什么派生类构造函数总是要访问基类构造函数?
我想知道这个问题是否有效?
c++ - 为什么派生类中重写方法的“虚拟”是可选的?
当一个方法在类中声明virtual
时,它在派生类中的覆盖也会被自动考虑virtual
,并且 C++ 语言virtual
在这种情况下使这个关键字是可选的:
virtual
我的问题是:选择可选的理由是什么?
我知道编译器并非绝对有必要被告知,但我认为如果编译器强制执行这样的约束,开发人员将受益。
例如,有时当我阅读其他人的代码时,我想知道一个方法是否是虚拟的,我必须追踪它的超类来确定这一点。并且一些编码标准(谷歌)使得将virtual
关键字放在所有子类中是“必须的”。
c# - 在构造函数中使用继承 (publix X () : y)
我刚刚看到以下代码,但我不明白构造函数声明中基类的派生。这是什么,这可能与序数方法吗?
c++ - 从派生模板类调用函数
我的基类:
派生模板类:
我对这段代码有另一个问题(在另一篇文章中回答),但目前我正在努力解决这样一个事实,即如果我尝试运行它,我会得到
未定义符号:“Element::plus(Element const&)”,引用自:
vtable for Vectorin main.o
“Element::Element()”,引用自:
Vector::Vector()in main.o
Vector::Vector( double const&, double const&, double const&)in main.o
"Element::minus(Element const&)",引用自:
vtable for Vectorin main.o
"typeinfo for Element",引用自:
typeinfo for Vectorin main.o
ld:未找到符号
collect2:ld 返回 1 个退出状态
这是因为派生的模板类与基类不在同一个文件中,这会导致编译器问题(类似于我必须在头文件中定义整个 Vector 类)?
我对 C++ 还很陌生,仍在阅读什么是 vtable 以及它们是如何工作的,但我还不能完全弄清楚这一点。
c++ - 指向成员函数、模板和继承混合的指针
我正在尝试创建一个通用的“回调”对象,它将保存任意数据并调用相关类的成员函数。由于内部政策,我不能使用 Boost。
回调对象如下所示:
它适用的课程:
以下测试按预期工作:
到现在为止还挺好。
但是,当同事尝试从Callback
类派生而不是使用 atypedef
时,由于指针不兼容,他们得到了编译错误:
我尝试在回调类中使用“奇怪的重复模板模式”并设法让派生类工作,但它破坏了使用该typedef
方法的代码。
我的问题是:
如何修改 Callback
该类以处理这两种情况,而不需要该类用户的额外工作?
asp.net - 在 ASP.NET 会话期间存储自定义“用户”对象的最佳位置在哪里?
我有一个 ASP.NET 应用程序,它需要在会话中跨页面记住有关用户(以及他们来自哪个公司)的一些信息。
我想这几乎是任何特定大小的 ASP.NET 应用程序的要求。这些年来,我使用了几种不同的方法。
过去,我在查询字符串参数中传递了一个 id,如下所示:
然后实例化每个页面上的对象(来自数据库)。
另一种常见的方法是将我的对象存储在会话变量中:
这样可以节省前往数据库的行程,但是如果用户对象很复杂并且站点有很多并发用户,我会担心使用的内存。
我最近继承了一个使用母版页上公共属性的应用程序,如下所示:
这样可以节省演员表,并且我认为对我来说看起来更具可读性,但我不知道它在性能方面是更好还是更差。它在 getter 中也有一些逻辑,如果私有值为 null,它会尝试从 Session 变量中获取它,尽管我不确定是否从未使用过(或每次获取都使用过!?)或什么。
我最新的想法是使用我的页面类。我有一个从标准 System.Web.UI.Page 基类派生的自定义页面类。它包括像 CurrentUser 这样的对象作为公共属性。这似乎工作正常。我更喜欢它。
但我真的不知道幕后发生了什么。任何人都可以就哪种方法更好以及为什么提出意见?
也欢迎这样做的替代建议。
更新: 我已经对使用 trace.axd 和 Trace.Write 进行了一些检查,它看起来既不是母版页版本,也不是自定义页面类版本“记住”页面之间的值。“get”方法有一行代码检查 User 属性是否为空,如果是,则从会话变量中读取它。当页面在给定页面上第一次访问属性(Master.User 或派生类的 this.User)时会发生这种情况,然后后续请求可以获取该值(无需转到会话变量)。
c++ - 以基实例为参数的派生类的构造函数
我有这个代码:
为什么该行B b2 = b1
不调用构造函数B::B(const A &a)
而是调用A::A(const A &a)
?我怎样才能告诉编译器这样做?
c++ - 为什么我的 C++ 子类需要显式构造函数?
我有一个声明和定义构造函数的基类,但由于某种原因,我的公共派生类没有看到该构造函数,因此我必须在派生类中显式声明一个转发构造函数:
在上面的代码中,我的WireCount1 wireCount1(100)
声明被编译器拒绝(“No matching function for call to 'WireCount1::WireCount1(int)'”),而我的wireCount0
和wireCount2
声明很好。
我不确定我是否理解为什么需要提供中所示的显式构造函数WireCount2
。是因为编译器为 生成了默认构造函数WireCount1
,而该构造函数隐藏了WireCount0
构造函数吗?
作为参考,编译器是i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5659)
.
oop - 我应该在派生类中有一个构造函数吗?
我的问题是这样的。我有一个 XMLUtility 类
和一个
和其他基本功能,如 addSetting、removeSetting、checkSettingExists 等。此类为非常基本的 xml 设置文件提供功能。
所以现在我需要更高级的设置处理。所以我创建了另一个类并从 XMLUtility 类派生它。
所以我最初的想法是我不需要这个类的构造函数,因为它将调用基类构造函数。但是我错了。
我的问题是上面的代码是否正确?我是否也需要在此构造函数中编写整个检查过程,还是由基类的构造函数处理?只是一个空的代码块是正确的吗?
iphone - iphone派生UITableViewController的最佳方式
我希望创建我的个人 UITableViewController 并使用界面生成器将其用于我的 UIViewController ......什么是最好和最快的方法?