1

マネージド C++\CLI リストを使用して基本的な vetor クラスを作成しようとしています。私はこれが初めてなので、優しくしてください;-)

ヘッダファイル MyVec.h

#pragma once

using namespace System::Collections::Generic;

ref class MyVec
{
private:
    List<double>^ MyVector;

public:
    MyVec(void);

    property List<double>^ myVector
    {
        List<double>^ get();
        void set(List<double>^ MyVector);
    }

    MyVec^ operator+(MyVec^ 2ndVec);

};

ここで、+ をオーバーロードして 2 つのベクトルを追加しようとする「番号の悪い接尾辞」を取得します。

CPP ファイル MyVec.CPP:

#include "StdAfx.h"
#include "MyVec.h"

List<double>^ MyVec::myVector::get()
{
    return MyVector;
}
void MyVec::myVector::set(List<double>^ myVector)
{
    this->MyVector = myVector; 
}
MyVec^ operator+(MyVec^ 2ndVec)
{
    MyVec^ SumVec = gcnew MyVec();
    if 2ndVec->Count == this->Count
    {
        for (int i = 0; i < this->Count; i++)
        {
            SumVec[i] = this[i] + 2ndVec[i];
            return SumVec;
        }
    }
}
MyVec::MyVec(void)

では、過負荷の何が問題なのですか?

ありがとう、ヤン

4

1 に答える 1

1

ndVecエラーは、レクサーがリテラル number の接尾辞であることを許可していないことを示してい2ます。あなたの意図は、文字通りの数字ではなく、識別子を書くことです。ただし、2ndVecC++/CLI では有効な識別子ではありません。

正当な識別子は、文字、数字、およびアンダースコアで構成されます。数字で始めることはできません。2 つのアンダースコアを含む識別子、またはアンダースコアで始まり、その後に大文字が続く識別子は、実装用に予約されています。

于 2013-08-04T03:29:24.557 に答える