これは、VS2015を使用した代替投票選挙方法に基づくC++プログラムの一部です。私は他の場所で違法オペランドエラーが返さプログラムアクセサー付きベクタオブジェクトのソート
void sortParties() {
sort(parties.begin(), parties.end(), [](const auto& a, const auto& b)
{
return a.getVotes() < b.getVotes();
});
}
で投票用紙から算出した(使用して、私は投票を並べ替えしようとした党
#pragma once
#ifndef _PARTY_H
#define _PARTY_H
#include <string>
class Party {
public:
Party();
~Party();
Party(std::string n, int pos);
void reset();
void upTotal();
int getPosition();
std::string getName();
int getVotes();
private:
std::string name;
int votes;
int position;
};
#endif
と
#include <iostream>
#include "Party.h"
using namespace std;
Party::Party() {}
Party::~Party() {}
Party::Party(string n, int p) {
name = n;
position = p;
}
void Party::reset() {
votes = 0;
}
void Party::upTotal() {
votes += 1;
}
int Party::getPosition() {
return position;
}
string Party::getName() {
return name;
};
int Party::getVotes() {
return votes;
}
のクラス受けています変数をプライベートからパブリックに移動して、次のことを書くことができました
void sortParties() {
sort(parties.begin(), parties.end(), [](const auto& a, const auto& b)
{
return a.votes < b.votes;
});
}
これは動作しますが、私はプライベート変数とアクセサーを使って適切なカプセル化を使って投票したいと思います。何とかオーバーロードしたり、タイプを変換する必要がありますか?
_PARTY_H = UBであなたのconstオブジェクトから関数を呼び出すことができます。おそらく問題はありませんが、修正する必要があります。 – Bathsheba
getVotesはconstではありません - あなたはconstオブジェクトを持っています – UKMonkey