1

尝试使用托管 C++\CLI 列表创建基本向量类。我是新手,所以要温柔;-)

头文件 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);

};

在这里,我得到一个“数字后缀错误”,我尝试重载 + 以添加两个向量。

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成为文字数字的后缀2。看来您的意图是写一个标识符,而不是文字数字。但是,2ndVec不是 C++/CLI 中的合法标识符。

合法标识符由字母、数字和下划线组成。它不能以数字开头。包含双下划线或以下划线后跟大写字母的标识符保留用于实现。

于 2013-08-04T03:29:24.557 回答