问题已得到解答,非常感谢。
答案 0 :(得分:1)
您似乎对变量在C ++中的工作方式感到困惑。
用GCC编译你的程序,它说:
test.cpp: In function ‘int main()’:
a.cpp:23:20: error: ‘email’ was not declared in this scope
cin >> email;
这意味着没有名为email
的变量。您在emailverify
类中声明了具有该名称的成员变量,但只有在定义emailverify
类型的变量时才会使用该变量,而您没有这样做。
现在,我建议你摆脱emailverify
类并在main
中直接声明你需要的变量作为局部变量(你可以将它们声明为全局变量,但它是如果你把它们留在当地更好):
int main()
{
std::string test;
std::string email;
std::string at = "@";
std::string period = ".";
然后还有很多其他错误,例如email.find(at != std::string::npos)
而非email.find(at) != std::string::npos
,但您最终会遇到这些错误。
std::string at = "@";
,但恕我直言,这只是愚蠢的。写email.find("@")
完全没问题,额外的变量什么都不买。
答案 1 :(得分:0)
您的问题属于部分代码:
class emailverify
{
public: // global variables/functions
std::string test;
std::string email;
std::string at = "@";
std::string period = ".";
};
它不定义全局变量或函数,但声明类。主要功能中既没有定义或声明的电子邮件或测试变量。
如果你想坚持全局的事情,你可以做的是创建类型为emailverify的全局对象,并通过.
使用其成员,或者使所有成员static
并通过::
访问(emailverify::test
)或将class
更改为namespace
,但也需要在课外定义它们(Defining static members in C++)。
但是,您可以将它们当作本地人使用,现在不要担心所有这些。