我正在为我的类编写代码,而且我正面临一个问题。我从来没有在C++中使用过字符串,我也不知道如何将一个字符串分成两个字符串。此外程序编译,但输出是错误的,我怀疑的构造函数。有人可以看看,并给我一个anaswer,我应该改变什么代码才能正常工作?我将感激不尽:)初学者字符串,构造函数
下面的代码: 主(它是由老师给出)
int main()
{
oop::Data a;
oop::Data b;
{
MACRO1;//co tu ma się dziać?
Data b;
}
const oop::Data Data_element = "Test-first"; // tworzony jest obiekt const o nazwie Data_element klasy Data, do którego wpisywany jest teks
const oop::Data c(Data_element, "Test-second"); // wywołanie konstruktora
a.full_data("Pierwszy Drugi");
b.first() = b.second("Tekst testowy"); //co tu ma się dziać?
std::cout
<< "a = " << a << std::endl;
std::cout
<< "b = " << b.full_data() << std::endl;
std::cout
<< "c = " << c.first() << ", " << c.second() << std::endl;
const oop::Data d = a.to_upper(); //zamienia na WIELKIE litery
oop::Data e = d.to_lower(); //zamienia na mnałe litery
std::cout
<< "d = " << d << std::endl;
std::cout
<< "e = " << e << std::endl;
}
/* Output:
a = ["Pierwszy", "Drugi"]
b = ["Tekst testowy", "Tekst testowy"]
c = Test-first, Test-second
d = ["PIERWSZY", "DRUGI"]
e = ["pierwszy", "drugi"]
*/
.h文件中:
#define MACRO1 using namespace oop;
//Makro !
#include <string>
#include <iostream>
namespace oop{
class Data
{
public:
Data(const char*);//Konstruktor ma przyjac const char* a nie string bo " text " to const char*
Data(const Data&,const char*);
Data();
Data(const Data&);//dla linijki 35
~Data();
void first_data(char* data);
std::string first() const;
const char* second()const;//to sie przyda
std::string second(std::string data) const;
//const char* full_data(const std::string data);
void full_data(const std::string data);
const char* full_data();
Data to_upper(void) const;//const dodajesz tutaj zawsze jak nie zmieniasz obiektu zeby metoda dzialala na const obiekcie
Data to_lower(void) const;
friend std::ostream & operator <<(std::ostream & wypisz, const Data& data);
private:
const char* _text1;
const char* _text2;
};
inline std::ostream & operator <<(std::ostream & wypisz, const Data& data)
{return (wypisz<<"[\"" << data._text1 << " \", \" " << data._text2 << "\" ]");}
}
#endif
和功能的.cpp
#include <iostream>
#include "lab07.h"
#include <string>
//konstruktor*******************************************************************************************************
oop::Data::Data(const char* c)
{_text1=c;}
oop::Data::Data(const Data& object, const char* c)
{
_text1 = object._text1;
_text2 = c;
}
oop::Data::Data(){} //tu chyba nic nie jest potrzebne
oop::Data::Data(const Data& object)
{
_text1 = object._text1;
_text2 = object._text2;
}
oop::Data::~Data(){} //tu chyba nic nie jest potrzebne
//funkcje*******************************************************************************************************
void oop::Data::first_data(char* data){}
std::string oop::Data::first()const
{return std::string(" ");}
std::string oop::Data::second(std::string data)const
{return std::string(" ");}
/* const char* oop::Data::full_data(const std::string data)
{return " ";}*/
void oop::Data::full_data(const std::string data)
{
int size = data.size();
int space = data.find(' ');
//_text1 = data.substr(0,space);
// _text2 = data.substr(space,size);
return ;}
const char* oop::Data::full_data()
{return " ";}
oop::Data oop::Data::to_upper(void)const
{return *this;}
oop::Data oop::Data::to_lower(void)const
{return *this;}
const char* oop::Data::second()const
{return " ";}
请问你能否改变成英文? –
它提供了什么输出,你期望什么? – b4hand
@ b4hand my psychic powers predict:/ *输出: a = [“Pierwszy”,“Drugi”] b = [“Tekst testowy”,“Tekst testowy”] c = Test-first,Test-second d = [“PIERWSZY”,“DRUGI”] e = [“pierwszy”,“drugi”] */ – user4581301