小编Pau*_*aul的帖子

用户定义结构的Deque

我有一个用户定义的结构struct theName,我想制作这些结构(deque<theName> theVar)的双端队列.但是,当我尝试编译时,我收到此错误:

In file included from main.cpp:2:
Logger.h:31: error: ISO C++ forbids declaration of ‘deque’ with no type
Logger.h:31: error: expected ‘;’ before ‘<’ token
Run Code Online (Sandbox Code Playgroud)

为什么我不能这样做?

文件:Logger.h

#ifndef INC_LOGGER_H
#define INC_LOGGER_H

#include <deque>

#include "Motor.h"

struct MotorPoint {
        double speed;
        double timeOffset;
};

class Logger{
        private:
                Motor &motor;
                Position &position;
                double startTime;

(31)            deque<MotorPoint> motorPlotData;

                double getTimeDiff();
        public:
                Logger(Motor &m, Position &p);
                //etc...
};
#endif
Run Code Online (Sandbox Code Playgroud)

c++ struct structure deque

2
推荐指数
2
解决办法
3953
查看次数

具有继承的类中的构造方法

我在C++中的继承和构造函数方面遇到了一些问题.我得到的是一个VirtualMotor继承的类Motor(这是正确的说法吗?).VirtualMotor类应该拥有它自己的构造函数,但是当我创建它时,我做错了,编译器给了我一个错误(见下文).我的源代码是这样的:

Motor.h

class Motor
{
protected:
    float speed;
    float angle;
public:
    Motor();
    float getSpeed();
    float getAngle();
    virtual void setSpeed( float speed );
    virtual void setAngle( float angle );
Run Code Online (Sandbox Code Playgroud)

Motor.cpp

#include "Motor.h"

float Motor::getSpeed() { return speed; }
float Motor::getAngle() { return angle; }
Run Code Online (Sandbox Code Playgroud)

VirtualMotor.h

#include "Motor.h"

class VirtualMotor: public Motor
{
private:
    float lastSpeed;
public:
    VirtualMotor();
    void setSpeed(float speed);
    void setAngle(float angle);
};
Run Code Online (Sandbox Code Playgroud)

VirtualMotor.cpp

#include "VirtualMotor.h"

VirtualMotor::VirtualMotor() 
{
    speed = 2;
    angle = 5;
}

void …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance constructor compiler-errors

1
推荐指数
1
解决办法
2717
查看次数

创建未知类的对象(两个继承的类)

我有以下课程:

class A {
    void commonFunction() = 0;
}

class Aa: public A {
    //Some stuff...
}

class Ab: public A {
    //Some stuff...
}
Run Code Online (Sandbox Code Playgroud)

根据用户输入,我想创建Aa或Ab的对象.我的imidiate想法是这样的:

A object;
if (/*Test*/) {
    Aa object;
} else {
    Ab object;
}
Run Code Online (Sandbox Code Playgroud)

但是编译器给了我:

error: cannot declare variable ‘object’ to be of abstract type ‘A’
because the following virtual functions are pure within ‘A’:
//The functions...
Run Code Online (Sandbox Code Playgroud)

有没有好办法解决这个问题?

c++ inheritance class

1
推荐指数
1
解决办法
492
查看次数

更新非常简单的appwidget的问题

我一直在关注这个教程,试图为android制作一个非常简单的时钟小部件.我能够创建小部件,但它似乎没有更新.我发现这很奇怪,因为我的代码似乎与android dev博客的教程基本相同.

当我将小部件添加到主屏幕(Android 2.2模拟器)时,我在logCat中收到以下消息:

I/ActivityManager(   68): Starting activity: Intent { act=android.appwidget.action.APPWIDGET_PICK cmp=com.android.settings/.AppWidgetPickActivity (has extras) }
W/InputManagerService(   68): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@44fbaf40
I/AppWidgetPickActivity(  135): EXTRA_CUSTOM_INFO not present.
I/ActivityManager(   68): Displayed activity com.android.settings/.AppWidgetPickActivity: 1181 ms (total 1181 ms)
W/ActivityManager(   68): Unable to launch app com.levold.customClockWidget/10036 for broadcast Intent { act=android.appwidget.action.APPWIDGET_ENABLED cmp=com.levold.customClockWidget/.ClockWidget }: process is bad
W/ActivityManager(   68): finishReceiver called but none active
W/ActivityManager(   68): Unable to launch app com.levold.customClockWidget/10036 for broadcast Intent { act=android.appwidget.action.APPWIDGET_UPDATE …
Run Code Online (Sandbox Code Playgroud)

android android-widget

1
推荐指数
1
解决办法
4038
查看次数