期望一个声明。语法错误:“,”

时间:2018-06-20 03:11:21

标签: c++

#pragma once
#include <ctime>
#include "lib.h"

class testtime
{
public:
    int start_s = 0,stop_s = 0;
    void starttesttime(){
        start_s = clock();
        stop_s = 0;
    },
    stoptesttime(std::string t){
        stop_s = clock();
        std::cout << t << " time: " << (stop_s - start_s) / double(CLOCKS_PER_SEC) << std::endl;
        start_s = 0;
    };
};

我得到了严重性代码描述项目文件行抑制状态

Error (active)  E0169   expected a declaration  test    c:\Users\AWW\Desktop\test\test\testtime.h   12 .  
Severity    Code    Description Project File    Line    Suppression State
Error   C2059   syntax error: ','   test    c:\users\aww\desktop\test\test\testtime.h   12  
Severity    Code    Description Project File    Line    Suppression State
Error   C2334   unexpected token(s) preceding '{'; skipping apparent function body  test    c:\users\aww\desktop\test\test\testtime.h   13  

我真的声明了代码。不太确定

1 个答案:

答案 0 :(得分:5)

在C ++中,即使在声明类成员函数时,也可以在一个声明中包含多个逗号分隔的函数 declarators

struct S
{
  void foo(), bar(int) const, baz(double, char);
};

/* Same as
struct S
{
  void foo();
  void bar(int) const;
  void baz(double, char);
};
*/

但是,不允许在一个声明中使用多个逗号分隔的函数 definitions

struct S
{
  void foo() {}, bar(int) const {}, baz(double, char) {}; // ERROR
};

函数定义不是声明符。

您的代码特别遭受该问题的困扰。您正在尝试在一个声明中定义两个void函数。您必须独立定义它们-每个定义都应是一个单独的声明。