0

解決済み: Visual Studio を再起動しました

リストを含む学校向けのプロジェクトに取り組んでいSTLます。でこのエラーが発生しxmemoryます。この時点でソリューションを構築しようとしていますxmemoryが、私を殺しています

エラー 1 エラー C2664: 'GroceryStoreItem::GroceryStoreItem(GroceryStoreItem &)': パラメーター 1 を 'std::string' から 'GroceryStoreItem &' に変換できません d:\microsoft visual studio 10.0\vc\include\xmemory 208

ここに私のヘッダーがあります

#include <string>
#include <sstream>
#include<iostream>
#include <iterator>
#include <list>
using namespace std;
//
//*****************************************************************
//                     USER DEFINED DATA TYPES
//

class GroceryStoreItem
{
friend ostream & operator<< (ostream &out, const GroceryStoreItem &RHS);

public:
GroceryStoreItem();
GroceryStoreItem(string Name, double cost, string location);
GroceryStoreItem(GroceryStoreItem & GroceryStoreItemCCIn);
GroceryStoreItem & operator= (const GroceryStoreItem &RHS);
string ReturnItemName();
string ReturnLocation();
double ReturnCost();

private:
string ItemName;
string Location;
double Cost;
};

そして実装

#include "Grocery_Item.h"

using namespace std;
//*****************************************************************
//                  Grocery Item Constructors
//*****************************************************************
GroceryStoreItem::GroceryStoreItem()
{
ItemName = "default";
Location = "aisle 1";
Cost = 0.0;
}

GroceryStoreItem::GroceryStoreItem(string InName, double InCost, string InLocation)
{
ItemName = InName;
Location = InLocation;
if(InCost >= 0.0f)
{
Cost = InCost;
}
else
{
Cost = 0.0f;
}

 }

 GroceryStoreItem::GroceryStoreItem(GroceryStoreItem & GroceryStoreItemCCIn)       //Copy Constructor
{
ItemName=GroceryStoreItemCCIn.ItemName;
Location=GroceryStoreItemCCIn.Location;
Cost=GroceryStoreItemCCIn.Cost;
}

最終行の編集 xmemoryミス

    template<class _Other>
    void construct(pointer _Ptr, _Other&& _Val)
    {   // construct object at _Ptr with value _Val
    ::new ((void _FARQ *)_Ptr) _Ty(_STD forward<_Other>(_Val));
4

2 に答える 2

1

Visual Studio を閉じて、新しいプロジェクトを開始し、CPP とヘッダーを新しいプロジェクトに貼り付けたところ、コンパイルされて機能しました。理想的な答えではありませんが、うまくいきました。

于 2014-12-04T18:41:41.497 に答える