gpt4 book ai didi

C++共享指针问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:51:18 26 4
gpt4 key购买 nike

<分区>

我正在尝试创建一个 set 函数,它将接受一个共享指针并将其设置为等于另一个共享指针。

这是我在头文件中声明的共享指针和设置函数

class Shape
{
public:
Shape();
Gdiplus::Point start;
Gdiplus::Point end;

std::shared_ptr<Gdiplus::Pen> m_pen;

virtual LRESULT Draw(Gdiplus::Graphics * m_GraphicsImage) = 0;

void setPen(std::shared_ptr<Gdiplus::Pen> pen2);

void setStart(int xPos, int yPos);
void setEnd(int xCor, int yCor);
};

但是当我尝试在我的 cpp 中实现它时,我收到一条错误消息,指出我的“声明与 .h 上声明的 void setPen 不兼容”。它还说 m_pen 在我的 cpp 文件中未被识别。

#include<memory>
#include "stdafx.h"
#include "resource.h"

#include "ShapeMaker.h"
void Shape::setPen(std::shared_ptr<Gdiplus::Pen> pen2)
{
m_pen = pen2;
}

void Shape::setStart(int xPos, int yPos)
{
start.X = xPos;
start.Y = yPos;
}


void Shape::setEnd(int xCor, int yCor)
{
end.X= xCor;
end.Y = yCor;
}

这就是我的全部。 stdax.h 包括

  #include <atlwin.h>

#include <atlframe.h>
#include <atlctrls.h>
#include <atldlgs.h>
#include <atlctrlw.h>
#include <atlscrl.h>

#include <GdiPlus.h>

我得到的错误:

shapemaker.h(11): error C2039: 'shared_ptr' : is not a member of 'std'

shapemaker.h(11): error C2143: syntax error : missing ';' before '<'

shapemaker.h(11): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

shapemaker.h(11): error C2238: unexpected token(s) preceding ';'
.h(16): error C2039: 'shared_ptr' : is not a member of 'std'

shapemaker.h(16): error C2061: syntax error : identifier 'shared_ptr'
shapemaker.cpp(9): error C2511: 'void Shape::setPen(std::tr1::shared_ptr<_Ty>)' : overloaded member function not found in 'Shape'

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com