#include <iostream>
#include <string>
using namespace std;
class String {
public:
String(){
//default
value = 0;
name = "noname";
}
String (int x){
setValue(x);
}
String (string y){
setName(y);
}
String (int x ,string y) {
setValue(x);
setName(y);
}
void setValue(int x){
value = x;
}
void setName(string y){
name = y;
}
int getValue(){
return value;
}
string getName(){
return name;
}
int Compare (const char* name1,const char* name2){
const char* n1 = name1;
const char* n2 = name2;
if (strcmp(n1, n2) != 0)
cout <<"test"<<endl;
};
private:
int value;
string name;
const char* n1;
const char* n2;
};
int main()
{
string str1 ("abcd");
string str2 ("bbbb");
int Compare("abcd", "bbbb");
//String coin1(1,"Penny");
//cout<<"Coin 1 is a "<<coin1.getName()<<" and its worth $"<<coin1.getValue()<<endl;
//String coin2(10,"Dime");
//cout<<"Coin 2 is a "<<coin2.getName()<<" and its worth $"<<coin2.getValue()<<endl;
return 0;
}
Возможно, я ошибаюсь, но я не могу придумать, как это сделать. Я пытаюсь сделать strcmp, который позволяет сравнивать объект String с другим объектом String или с Строка типа «C», но я, кажется, делаю это неправильно.Почему мой конструктор strcmp не работает?
Это поможет получить более подробную информацию. В основном, 'int Compare (" abcd "," bbbb ");' не имеет никакого смысла. Вы хотите, чтобы вы могли называть 'Compare (coin1," abcd ")' например? Или вы в порядке с «Сравнить (coin1.getName(). C_str(),« abcd »);'. Пожалуйста, отредактируйте свой вопрос, чтобы включить некоторые примеры вызова сравнений, которые вы хотите сделать. –
Нет такой вещи, как «конструктор strcmp». Неясно, почему вы спрашиваете. Все переменные 'n1/n2' кажутся ненужными. – EJP