Когда я создаю и запускаю этот код в Eclipse CDT, я ожидаю, что он напечатает 1
. Вместо этого он печатает -1992206527
. Почему это?Почему cout дает мне неправильное целое число?
Вот мой код.
хиджры
#ifndef A_H
#define A_H
class A {
private:
int a;
public:
A();
~A();
void printNum();
};
#endif
a.cpp
#include <iostream>
#include "A.h"
A::A() :
a(1)
{
}
A::~A(){}
void A::printNum(){
std::cout << a << std::endl;
}
B.h
#ifndef B_H_
#define B_H_
class A;
class B {
private:
A* obj;
public:
B();
~B();
int run();
};
#endif
B.cpp
#include "A.h"
#include "B.h"
B::B() {}
B::~B() {}
int B::run(){
obj->printNum();
return 0;
}
main.cpp
#include "B.h"
int main(int argc, char **argv) {
B b;
return b.run();
}
Вы не инициализировали 'B :: obj'. – juanchopanza
... и почему вы хотите, чтобы он был указателем? – LogicStuff
@juanchopanza Как мне это сделать? – Username