- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有两个类:OuterClass 和 InnerClass。 InnerClass 是 OuterClass 的私有(private)成员,应使用 InnerClass(int) 构造函数在 OuterClass 构造函数中创建,但仍会调用默认的 InnerClass 构造函数。
内部类.hpp:
#ifndef INNERCLASS_HPP_
#define INNERCLASS_HPP_
class InnerClass {
public:
int a;
InnerClass();
InnerClass(int);
~InnerClass();
};
#endif /* INNERCLASS_HPP_ */
内部类.cpp:
#include "InnerClass.hpp"
#include <iostream>
InnerClass::InnerClass() {
a = 1;
std::cout << "inner class constructed, a = " << a << std::endl;
}
InnerClass::InnerClass(int x) {
a = x;
std::cout << "inner class constructed, a = " << a << std::endl;
//automatically: object InnerClass (a=3) is destroyed here...
}
InnerClass::~InnerClass() {
std::cout << "inner class destructed, a = " << a << std::endl;
}
外部类.hpp:
#ifndef OUTERCLASS_HPP_
#define OUTERCLASS_HPP_
#include "InnerClass.hpp"
class OuterClass {
private:
InnerClass blah;
public:
OuterClass();
~OuterClass();
void doSth();
};
#endif /* OUTERCLASS_HPP_ */
外部类.cpp:
#include "OuterClass.hpp"
#include <iostream>
OuterClass::OuterClass() {
// automatically: blah = InnerClass();
std::cout << "outer class constructing started, blah.a = " << blah.a << std::endl;
blah = InnerClass(3);
std::cout << "outer class constructed" << std::endl;
}
OuterClass::~OuterClass() {
std::cout << "outer class destructed" << std::endl;
}
void OuterClass::doSth() {
std::cout << "doSth: " << blah.a << std::endl;
}
主要内容:
#include "OuterClass.hpp"
#include <iostream>
int main(int argc, char** argv) {
std::cout << "Compiled at " << __TIME__ << std::endl;
OuterClass x = OuterClass();
x.doSth();
std::cout << "done" << std::endl;
}
输出:
Compiled at 12:11:12
inner class constructed, a = 1 //this is unexpected
outer class constructing started, blah.a = 1 //this should be random data
inner class constructed, a = 3
inner class destructed, a = 3 //this is unexpected
outer class constructed
doSth: 3
done
outer class destructed
inner class destructed, a = 3
问题:
最佳答案
在构造函数中使用初始化列表。
OuterClass::OuterClass() : blah(3) {
// automatically: blah = InnerClass();
std::cout << "outer class constructing started, blah.a = " << blah.a << std::endl;
std::cout << "outer class constructed" << std::endl;
}
自从你使用
OuterClass::OuterClass() {
// automatically: blah = InnerClass();
std::cout << "outer class constructing started, blah.a = " << blah.a << std::endl;
blah = InnerClass(3);
std::cout << "outer class constructed" << std::endl;
}
首先用于初始化的 blah 将被称为 default c-tor 并且在 blah = InnerClass(3);
中,创建临时对象并将其复制到 blah,之后这个字符串将被称为临时的析构函数对象。
关于c++ - 作为 OuterClass 对象成员的 InnerClass 对象被创建了两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11882372/
这个问题已经有答案了: Instantiate inner class object from current outer class object (3 个回答) 已关闭 7 年前。 我正在查看一些
我正在阅读 Bruce Eckel 所著的《Thinking in Java》一书。我在内部类一章中遇到了这个断言,它说:“使用本地内部类而不是匿名内部类的唯一理由是,如果您需要命名构造函数和/或重载
内部类的分类 1、本地内部类 2、实例内部类 3、静态内部类 4、匿名内部类 首先,我要在这声明一下,内部类也是类,不管它是属于何种类型。 说这个是为了端正你们内部类的角度。 只要是类,就会有类的特性
Student.Student_Card obj4 = Student.new Student_Card(namess, idss, true); Student 类是外部类,Studen_Card
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
基于答案:https://stackoverflow.com/a/47693998/8760211 当我尝试从类 Invoker 中对类型为 Student 的元素的列表进行排序时,发生以下编译错误。
http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.7.6 Every CONSTANT_Class_info e
我有几个导入的 jar 在项目构建时在 Eclipse 中出现此错误: [2011-04-08 16:31:48 - MokbeeAndroid] Dx warning: Ignoring Inner
我有一个java类,它有一些公共(public)方法,我想保留它们。 (这已经完成了)我还有一个包含静态常量的内部类。该类具有以下结构。 public class MyClass { publ
我有两个类:OuterClass 和 InnerClass。 InnerClass 是 OuterClass 的私有(private)成员,应使用 InnerClass(int) 构造函数在 Oute
我在 Android Studio 中构建代码时收到此警告。 它们很少会不显示,但大多数时候会显示。 warning: Ignoring InnerClasses attribute for an a
我是 Android 新手,正在使用 Ical4j 库来解析 ICS(Outlook 日历)文件。 但是,当我在 Eclipse 中构建应用程序时,控制台中多次出现以下警告: [2010-07-22
我有一个用 Java 编写的 REST 服务。我有一个运行良好的 GET 方法,现在我想实现 POST 方法。 @POST @Consumes(MediaType.APPLICATION_JSON)
伙计们。我对 Android 中的 PopupWindow 有疑问。 我有2个Buttons,点击任何一个都会显示一个popupWindow,它是外部类中的一个成员变量。 两个popupWindow的
伙计们。我收到这些错误(其中 504 个): Error:warning: Ignoring InnerClasses attribute for an anonymous inner class E
我最近升级到 Android Studio 3.1,并在使用 Java 项目构建 Kotlin 时收到以下警告。 InnerClass annotations are missing correspo
我正在尝试从 ClassB 访问 ClassA 中定义的内部类 Class1 ClassB.java public class ClassB implements Initializable {
我对在实例上调用 new 的可能性感到困惑,比如 InnerClass sc = pc.new InnerClass(); 我知道如何使用它,但我的问题是关于完全理解它。喜欢: JAVA文档中哪里有描
我正在尝试逐步执行名为 SVNPublisher 的 Hudson 插件的代码。我检查了 SVNPublisher 的代码,使用 Netbeans 打开项目,然后单击“调试主项目”。这导致 Firef
这是我的 java 文件的样子: public class MyActivity { public class MyVector {
我是一名优秀的程序员,十分优秀!