我在这里创建一个程序是规范:
创建一个CharConverter类,对字符串执行各种操作。它应该具有以下两个公共成员函数。
大写成员函数接受一个字符串并返回它的副本,所有小写字母都转换为大写。如果一个角色已经是大写字母或者不是一个字母,那么它应该是单独的。
properWords成员函数接受由空格分隔的单词串,并返回它的副本,每个单词的第一个字母转换为大写。
编写一个使用该类的简单程序。它应该提示用户输入一个字符串。然后它应该调用properWords函数并显示这个结果字符串。最后,它应该调用大写函数并显示这个结果字符串。
我编写的程序没有模块化,以确保我把一切都正确。现在,我正在尝试模块化我遇到错误,我不知道它们的意思,编译时:
这是我的代码:
#include<iostream>
#include<string>
#include<vector>
#include<ctype.h>
using namespace std;
class CharConverter {
public:
void uppercase(string, int);
void properWords(string, int);
};
void CharConverter::uppercase(string myString, int s) {
s = myString.length();
for (int i = 0; i <= s; i++) {
myString[i] = toupper(myString[i]);
}
cout << myString << endl;
}
void CharConverter::properWords(string myString, int s) {
for (int i = 0; i <= s; i++) {
myString[i];
myString[0] = toupper(myString[0]);
if (myString[i] == ' ') {
myString[i + 1] = toupper(myString[i + 1]);
}
}
cout << myString << endl;
}
int main() {
void properWords(string, int);
void uppercase(string, int);
string sentence;
int size;
cout << "Enter a sentence you want converted to all uppercase letters and
set up with proper uppercase letters." << endl;
getline(cin, sentence);
size = sentence.length();
properWords(sentence, size);
uppercase(sentence, size);
return 0;
}
答案 0 :(得分:1)
在主要的开头
const arr = [[1,3],[2,5],[1,3],[2,5]];
const setArray = new Set(arr.map(x => JSON.stringify(x)))
const uniqArray = [...setArray].map(x => JSON.parse(x))
console.log(uniqArray)
您声明了两个其他函数,而不是int main() {
void properWords(string, int);
void uppercase(string, int);
的一部分。然后你调用那些函数,而不是你之前定义的函数。
因此编译器(实际上是链接器)抱怨它无法找到这些非成员函数。这是事实,他们不存在。
现在您必须决定是否需要课程。在这种情况下,创建一个类对象并调用成员函数。或者跳过类声明并使函数自由函数。