[解決済み] 引数1の初期化... [-fpermissive]
2022-02-08 03:14:37
質問
c++の初心者で、ubuntuでeclipse cdtを使用していますが、ヘッダーファイルでこのエラーが発生します。
initializing argument 1 of 'std::map<basic_string<char>,Supplier*> Engine::processSupplierFile(char*)' [-fpermissive]
すでにこのエラーで検索したら、こんなのが出てきました。 C++のコードをコンパイルしようとすると、Eclipseでerror: initializing argument 1 of 'Item::Item(int)' [-fpermissive]が表示されるのはなぜですか?
が、ヘッダーファイルのエラーについては何も回答がありませんでした。
以下は、そのヘッダーファイルのコードです。(Supplierは2つの文字列とdoubleを含む単純なオブジェクトです)
#ifndef Engine_H_
#define Engine_H_
#include "Ingredient.h"
#include "Product.h"
#include "Supplier.h"
#include <stdio.h>
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
#include <map>
#include <algorithm>
#include <vector>
using namespace std;
class Engine {
public:
Engine();
virtual ~Engine();
string fileToString(string fileName);
void processLoggerFile (char* fileName);
string fileToString(char* fileName);
vector<Product> processProductsFile(char* fileName, const map<string, Ingredient> &cheapestIngredients);
map<string, Supplier*> processSuppliersFile(char* fileName); // this line produces the error
map<string, Ingredient> findCheapestPrices(vector<Supplier> &suppliers);
map<string, Product*> createMenu(vector<Product>& products);
void supplierPriceChange(vector<Product>& products, map<string,Product*>& menu,vector<Supplier>& suppliers, map<string, Ingredient> cheapestIngredients, string supName, string ingName, double newPrice);
};
#endif /* Engine_H_ */
このエラーの原因をご存知の方はいらっしゃいますか? ありがとうございます。
EDIT (supplier.hを追加)
/*
* Supplier.h
*
* Created on: Nov 10, 2013
* Author: tom
*/
#ifndef SUPPLIER_H_
#define SUPPLIER_H_
#include <string>
using namespace std;
class Supplier {
public:
Supplier();
Supplier(const Supplier& supplier);
Supplier(string supName, string ingName, double price);
Supplier& operator=(const Supplier& supplier);
virtual ~Supplier();
string getSupplierName() const;
string getIngredientName() const;
double getPrice() const;
void setPrice(double price);
private:
string _ingredientName;
string _supplierName;
double _price;
};
#endif /* SUPPLIER_H_ */
解決方法は?
OK、解決しました。 このエラーは、おそらく実装がconstメソッドにconstでないvarを送信したことが原因です。 変数とメソッドにconstを追加したら、問題は解決しました。
関連
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み] error: 'if' の前に unqualified-id を期待した。
-
[解決済み】IntelliSense:オブジェクトに、メンバー関数と互換性のない型修飾子がある
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み】エラー。switchステートメントでcaseラベルにジャンプする
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み] 警告:暗黙の定数変換でのオーバーフロー
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み] 変数サイズのオブジェクトが初期化されないことがある c++
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】LLVMで暗黙のうちに削除されたコピーコンストラクタの呼び出し
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み】テンプレートの引数1が無効です(Code::Blocks Win Vista) - テンプレートは使いません。
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み】std::cin.getline( ) vs. std::cin
-
[解決済み] C++の識別子でアンダースコアを使用する場合のルールについて教えてください。