C++错误提示:表达式必须包含类类型

查看:848
本文介绍了C++错误提示:表达式必须包含类类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

#include<iostream>
#include<string.h>
#include<stdlib.h>
using namespace std;
class Test3{
public :
    Test3();
    void change();
private :
    int a[100];
    int n =0;
    int *p;
};
Test3::Test3(){
}
void Test3::change(){
    int i = 0, j = 0;
    cin >> n;
    for (; i < n; i++){
        cin >> a[i];
    }
    p = a;
    for (; i < n; i++){
        if (*(p + i) == 0){
            for (j = i; j < n - 1; j++){
                *(p + j) = *(p + j + 1);
            }
            *(p + n - 1) = 0;
            n--;
        }
        cout << a[i];
    }
}
int main(){
    Test3 t();
    t.change();
    system("pause");
    return 0;
}



以上代码是实现
3.有一个数组int a[n],使用指针操作实现函数

int myfunc(int p,int n);
将a中的0都移动至数组末尾,将非0的移至开始(保持原来的顺序不变)
例如:A原来是1,0,3,4,0,-3,5
经过myfunc处理后为:1,3,4,-3,5,0,0。
这个功能的。

    t.change();

这行代码提示表达式必须包含类类型,这句话是什么意思?如何解决呢?

解决方案

Test3 t();
不能这么写

你这么写等于声明了一个函数t,它返回Test3的类型。

如果你想表达的是定义一个Test3类型的变量,以它的默认构造函数,那么去掉括号即可。

这篇关于C++错误提示:表达式必须包含类类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆