A と B の 2 つのクラスがあるとします。A には整数があり、コンストラクターからコンソールに表示されます。また、B のメンバ オブジェクトも持ちます。B は A と同じように整数を表示しますが、A が作成するときに A から整数を取得します。整数は const 値であるため、B のコンストラクターに直接渡す必要があります。
したがって、A が独自の整数を B に渡すと、A と B の両方がコンソールに同じ数値を表示すると予想されます (1)。代わりに、B のコンストラクターがその整数を出力すると、-858993460 が表示されます。何故ですか? A が B オブジェクトをインスタンス化し、B の const int に整数を渡すと、整数の値が変わるのはなぜですか?
main.cpp
#include "A.h"
int main() {
A a;
std::cin.get();
return 0;
}
ああ
#pragma once
#include <iostream>
#include "B.h"
class A {
public:
A() :
b(NUM_A)
{ std::cout << "A's number: " << NUM_A << std::endl; }
private:
B b;
const int NUM_A = 1;
};
Bh
#pragma once
#include <iostream>
class B {
public:
B (int num) :
NUM_B(num)
{ std::cout << "B's int: " << NUM_B << std::endl; }
const int NUM_B;
};