49820


タイトル通りなのですが普通に実行してコンソール画面が表示されエンターキーで閉じると  
場所や行数が表示されず「読み取りアクセス違反が発生しました」と表示され困っています教えてくれますでしょうか？  
1,ソースが利用できませんとは何が言いたのでしょうか？  
2,初学者のため何がどう違うのか検討がついません。教えてくれますでしょうか？  
環境:visual studio 2017, OS : windows10

[![画像の説明をここに入力](https://i.stack.imgur.com/3FoC3.png)](https://i.stack.imgur.com/3FoC3.png)

[code]

         ///////////////int main()部/////////////////////
            #include <iostream>
            #include "conio.h"
            #include "Header.h"
            using namespace std;
    
            int main() {
    
                C x(4,"AAA");
                D y(5,"B",5,"BB");
    
                y = x;
    
                //cout << a;
                y.view();
    
    
    
                _getch();
                return 0;
            }
    
        ///////////////Header.h////////////////////
    
                #ifndef ___Header_h
                #define ___Header_H
                #include <string>
                using namespace std;
    
    
                class C {
                private:
                protected:
                    int *vec;
                    string name;
                    int num;
                public:
                    C(int n, string str);//コンストラクタ
    
                    void view()const;/*画面表示*/
    
                    C(const C& x);/*コピーコンストラクタ*/
                    C& operator = (const C& x);/*代入operator*/
    
                    int g_num()const { return num; }
                    string g_name()const { return name; }
    
                    int g_vec(int i)const
                    {
                        return vec[i];
                    }
    
                };
    
                class D : public C {
                private:
                protected:
                    int *dvec;
                    string dname;
                    int dnum;
                public:
                    D(int n, string str,int nn,string sstr);//コンストラクタ
    
                    void view()const;//画面表示
    
                    D& operator = (const D& x);//代入operator
    
                    D& operator = (const C& x);//代入operator D = C
    
                };
    
    
    
    
    
                #endif
    
    
    //////////Source.cpp部/////////////////////////
    
            #include "Header.h"
            #include <iostream>
            using namespace std;
    
    
            C::C(int n, string str):num(n),name(str),vec(new int[n])
            {
                for (int i = 0; i < num; i++)
                {
                    vec[i] = i;
                }
            }
    
            void C::view()const
            {
                cout << "class C"<<"\n";
                cout << "name: " << name<<"\n";
                for (int i = 0; i < num; i++)
                {
                    cout << "["<<i<<"]: "<< vec[i] << "\n";
                }
    
                cout << "\n\n";
            }
    
            C::C(const C& x)/*コピーコンストラクタ*/
            {
                if (this == &x)
                {
                    num = 0;
                    vec = NULL;
    
                }
                else {
                    if (num != x.num)
                    {
                        num = x.num;
                        delete[] vec;
                        vec = new int[num];
                        name = x.name;
                    }
                    for (int i = 0; i < num; i++)
                    {
                        vec[i] = x.vec[i];
                    }
                }
            }
    
            C& C::operator = (const C& x)/*代入operator*/
            {
                if (this != &x)
                {
                    if (num != x.num)
                    {
                        num = x.num;
                        delete[] vec;
                        vec = new int[num];
                        name = x.name;
                    }
                    for (int i = 0; i < num; i++)
                    {
                        vec[i] = x.vec[i];
                    }
                }
                return *this;
            }
    
    
            /*--------------------派生クラス*/
            D::D(int n, string str,int nn,string sstr) : dnum(n),dname(str),dvec(new int[dnum]),
                                                                                            C(nn,sstr)
            {
                for (int i = 0; i < dnum; i++)
                {
                    dvec[i] = i;
                }
            }
    
            void D::view()const
            {
                //cout << dnum;
    
                cout << "class D" << "\n";
                cout << "name: " << dname << "\n";
                for (int i = 0; i < dnum; i++)
                {
                    cout << "[" << i << "]: " << dvec[i] << "\n";
                }
    
                cout << "\n\n";
    
                cout << "class C" << "\n";
                cout << "name: " << C::name << "\n";
                for (int i = 0; i < C::num; i++)
                {
                    cout << "[" << i << "]: " << C::vec[i] << "\n";
                }
    
            }
    
            D& D::operator = (const D& x)/*代入operator*/
            {
                if (this != &x)
                {
                    if (dnum != x.dnum)
                    {
                        dnum = x.dnum;
                        delete[] vec;
                        vec = new int[dnum];
                        dname = x.name;
                    }
    
                    for (int i = 0; i < dnum; i++)
                    {
                        vec[i] = x.vec[i];
                    }
                }
                return *this;
            }
    
            D& D::operator = (const C& x)//代入operator D = C
            {
                if (this != &x)
                {
                    cout << "代入operator D = C\n";
                    C::num = x.g_num();
                    C::name = x.g_name();
                    delete[] C::vec;
                    C::vec = new int[C::num];
    
                }
                for (int i = 0; i < C::num; i++)
                {
                    C::vec[i] = x.g_vec(i);
                    //cout << C::vec[i]<<"\n";
                }
    
                return *this;
            }
    
[/code]


CC BY-SA 4.0
2018-10-31T05:42:46.867
49818
2018-10-31T08:28:32.040
2018-10-31T07:00:49.363
2238
question
c++
ソースが表示されませんとは何かが知りたい


デバッグ用の実行ファイルは、普通の実行ファイルに加えて、エラー等の異常発生時に該当箇所を示すためのソースコード、ヘルプメッセージといったデバッグ作業をサポートするためのデータを持っている場合があります。（デバッグ用の実行ファイルを作るときに、何を含め、何を含めないかといった選択ができます）

そうしたソースコードのデータを含まない実行ファイルの場合には、表示するべきソースコードが無いので「このモジュールのデバッグ情報にはソース情報がありません」という事情説明と共に「ソースは利用できません」という事実を表明している訳です。

まず、Visual Studioなどの開発環境では何ができるのかを [知らないと損？ Visual
Studioの機能を使ってみよう！](https://www.ryobi.co.jp/column/visual-studio-tips1)
の記事（前編、中編、後編の3部構成になっています）などで学ばれてはいかがでしょうか。  
前編のブレークポイントのところの図を見ると、ソースコードがどのように使われているか（表示されるのか）が判るかと思います。


CC BY-SA 4.0
2018-10-31T08:28:32.040
49820
2018-10-31T08:28:32.040
217
49818
answer