我刚注意到了一些东西,我觉得这很奇怪。这不是很重要,但它引起了我的好奇心。
想象一下你宣布一个班级:
class myException : public std::exception
{
/*do stuff*/
} myExep;
我刚注意到,无论何时抛出异常,都需要采用不同的方式,具体取决于您使用的是myException
还是myExep
:
try
{
if (/*whatever*/)
throw myException();
}
或:
try
{
if (/*whatever*/)
throw myExep;
}
我不明白你为什么在一个案例中需要()
而在另一个案例中不需要-Wall -Werror -Wextra
。
我使用clang ++作为编译器,dunno如果它与它有任何关系。
我使用foreach (string s1 in words)
{
string text1 = s1;
string[] words1 = text1.Split('\t');
int a = words1.length;
Regex regex = new Regex(@"/^[0-9]*$/");
foreach(string compare in words1)
{
if (regex.IsMatch(compare))
sr = sr + " " + compare;
else
quota = quota + " " + compare;
}
}
标志。
这不是什么大问题,我只想了解到底发生了什么。
答案 0 :(得分:4)
class Foo {
...
} bar;
只是一种较短的写作方式
class Foo {
...
};
Foo bar;
您也可以使用此语法,而不给类型命名:
struct {
int x, y;
} p;
// p is an object with p.x and p.y fields
在您的示例中,myException
是一种类型,而myExp
是(可能是全局的)对象。