如何为命名空间和扩展类转换c#到Qt小部件代码(c++)

How to convert C# to Qt widget code (C++) for namespace and extends class

本文关键字:小部 Qt 代码 c++ 命名空间 扩展 转换      更新时间:2023-10-16

我在android和iOS上使用Qt 5.4。

我有一个c#代码,但我不知道如何将其转换为Qt(c++)。

在c#中
交流

namespace WS
{
        public enum myTypes
        {
            T1,
            T2,
            T3,
        };
         public abstract class GS
        {
           protected Color _penColor = Color.White;
           protected bool ReadBaseProperty(BinaryReader reader, string readFileVersion)
            {...
            }
        }...
}

公元前

namespace WS
{
    public class sL : GS
    {
        public virtual int PC
        {
            get { return PointList.Count; }
        }...
     }
}

在Qt中,我尝试

A.h

namespace WS{
   class GS
   {
    public:
    GS();
   }
}

A.cpp
#include "GS.h"
WS::GS::GS(){}

另一个文件:
B.h

namespace WS{
   class sL:public GS
   {
    public:
    sL();
   }
}

另一个文件:
B.cpp

#include "B.h"
WS::sL::sL(){}

它是Qt的正确格式吗?

我不太确定你想要做什么,但我会试一试。

没有从c#到c++的一对一转换,但是这里有你可以转换的部分:

交流

namespace WorkSystem
{
    enum myTypes
    {
        T1,
        T2,
        T3
    };
    class GS
    {
        protected:
            GS() { }
    };
}

GS有一个受保护的构造函数来防止初始化,在c++中没有抽象这样的东西

公元前

namespace WorkSystem
{
    class sL : public GS
    {
        public:
            virtual ~sL() { }
            virtual int getPC()
            {
                return 0;
            }
    };
}

sL有一个虚析构函数

现在对于其他部分:

  • 颜色:这是一个系统。绘图结构,不是c++,而是c++/CLI。

  • 主题:这是一个只在c#中可用的类。要从文件中读取,必须使用stdio或第三方库。

  • 电脑:属性在c++中是不可用的,你可以使用函数作为getter和setter。

  • PointList。数:我假设这是一个c#列表类。同样,这些在c++中不存在,但可以用std::list

  • 来替换。