私は C++ を初めて使用し、ポインターとクラスを少しいじっています。これまでのところ、解決策を見つけることができなかった問題に遭遇しました。
RAII.exe の 0x77F87508 (msvcr110d.dll) で未処理の例外: 0xC0000005: 場所 0xCCCCCCC0 を読み取るアクセス違反。
アクセスできないポインターにアクセスすることと関係があるようです。
Main.cpp:
#include <memory>
#include <iostream>
#include "Example.hpp"
void example()
{
Example e;
}
int main()
{
example();
std::cout << "Press any key to exit";
std::cin.get();
return 0;
}
例.cpp:
#include "Example.hpp"
Example::Example()
{
m_a = new int(1);
m_b = new int(2);
m_b = new int(3);
}
Example::~Example()
{
delete m_a;
delete m_b;
delete m_c;
}
例.hpp:
#ifndef _EXAMPLE_HPP_
#define _EXAMPLE_HPP_
#include <memory>
#include <iostream>
class Example
{
private:
int *m_a;
int *m_b;
int *m_c;
public:
Example();
~Example();
};
#endif _EXAMPLE_HPP_
したがって、私が基本的に行うことは、コンストラクタでメモリを割り当て、デストラクタで割り当てを解除することです。
どんな助けでも大歓迎です!前もって感謝します:D