[英]Getting a “Use of undeclared identifier” error
我要在 C++ 中使用不同的方法创建一个自定义String
class 。
我遇到的问题是在另一个文件中声明的方法出现“使用未声明的标识符”错误:
#include <iostream>
#include "String.h"
int main() {
std::cout << "Hello World!\n";
char str[] = "Today I am happy.";
cout<<strlen(str); // error
strlwr(str); //error
}
这是另一个文件String.h
:
#include <iostream>
using namespace std;
class Strings
{
public:
char *s;
Strings(char *a){
int l=0;
for(int i=0;a[i]!='\0';i++)
l++;
/*The length of string a*/
s=new char[l+1];
for(int i=0;a[i]!='\0';i++)
s[i]=a[i];
}
void strlwr(char *s1){ //method
for(int i=0;s1[i]!='\0';i++)
{
if(s1[i]>='A' && s1[i]<='Z')
s1[i]=(char)(s1[i]+32);
}
for(int i=0;s1[i]!='\0';i++)
cout<<s1[i];
}
int strlen(char *s1) //method
{
int l=0;
for(int i=0;s1[i]!='\0';i++)
{
l++;
}
return l;
}
int strcmp(char *s1,char *s2){
while(*s1 != '\0' && *s2 != '\0' && *s1 == *s2){
s1++;
s2++;
}
if(*s1 == *s2){
cout<<"They are equal";
return 0;
}
else if(*s1 >= *s2)
return 1;
else
return -1;
}
};
这与其他程序一起工作得很好。 我不知道为什么我现在有这个问题。
如果这些函数独立于 class,您可以声明它们static
。
static void strlwr(char *s1){ //method
static int strlen(char *s1) //method
他们像这样使用它们:
cout<<String::strlen(str); // error
String::strlwr(str); //error
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.