エラー: "cargaison :: cargaison()"への呼び出しで一致する関数がありません どこから問題が発生しているかを知る!!! hppファイルsociete.cppを使ってcppファイル(societe.cpp)を作成したいのですが、コンパイラがhppファイルでコンストラクタを見つけることができないようですが、正しく宣言されています。エラー:cargaison :: cargaison()の呼び出しで一致する関数がありません
ヘッダファイル:
#include<iostream>
#include"cargaison.hpp"
using namespace std;
class societe{
private:
cargaison carg[100];
int tailleMaxs ;
int static tailleTabs ;
public:
societe(int tmax);
societe(float pods,float vol,int num, int tmaxs);
~societe();
void affich_societe();
cargaison getcargaison(int i);
void setcargaison(int i, cargaison a);
void ajout_cargaison(float pods,float vol,int num,int ref, float dist, bool b);
void supp_cargaison(int numc);
};
ソースファイル:
#include <iostream>
#include "societe.hpp"
using namespace std;
int tailltabs = 0;
societe::societe(int tmax)/* here where the error is */
{
tailleMaxs = 100;
tailleTabs = tmax;
}
societe::societe(float pods, float vol, int num, int tmaxs)
{
tailleMaxs = tmaxs;
tailleTabs = 1;
}
societe::~societe()
{
for (int i = 0; i < tailleTabs - 1; i++) {
carg[i].~cargaison();
}
}
void societe::affich_societe()
{
for (int i = 0; i < tailleTabs - 1; i++) {
carg[i].affichCargaison();
}
}
cargaison societe::getcargaison(int i)
{
return carg[i];
}
void societe::setcargaison(int i, cargaison a)
{
carg[i] = a;
}
void societe::ajout_cargaison(float pods, float vol, int num, int ref, float dist, bool b)
{
if (b == 0) {
routiere[tailleTabs + 1].routiere(pods, vol, num, ref, dist);
}
if (b == 1) {
aerienne[tailleTabs + 1].aerienne(pods, vol, num, ref, dist);
}
tailleTabs++;
}
void societe::supp_cargaison(int num)
{
for (int i = 0; i < tailletabs - 1; i++) {
if (carg[i].getRef() == num) {
for (int j = i; j < tailltabs - 1; j++) {
carg[j] = carg[j + 1];
break;
}
carg[j - 1].~cargaison();
}
}
tailleTabs--;
}
あなたはクラスや配列、cargaison
という名前の両方の両方を持っているように見えるcargaison.hpp
#include<iostream>
#include"marchandise.hpp"
class cargaison {
protected:
marchandise march[100];
int tailleMax ;
int static tailletab ;
public:
void addMarchandise(marchandise a);
void suppMarchandise(int num);
void affichParId(int num);
void affichTT();
float affichPoidTotal();
float affichVolTotal();
float affichCout();
cargaison(int tmax);
cargaison(float pods,float vol,int num,int tmax);
~cargaison();
void affichCargaison();
void modiferMarch(float npods,float nvol,int nnum, int onum);
};
1.ヘッダーファイルはどこにありますか? 2.コードを正しくインデントしてください。読めません。 3.問題に気づかないものをすべて削除してください。このリンクは役立ちます:[mcve]。 – HolyBlackCat
デストラクタを明示的に呼び出すように指示した人のアドバイスを取らないでください。 – molbdnilo
cargaison.hppにcargaisonの定義を教えてください。エラーメッセージが表示される行のコメントを表示しますか? (*ところで、ヘッダーファイルで 'namespace std;を使うのは非常に悪い習慣です*)。 – Christophe