小编IAE*_*IAE的帖子

何时使用()类?

这真的开始让我感到困惑.我何时使用它们,何时不使用它?

例如,我在链接列表上读取.cpp,其类声明为:

struct CarPart
{
    long PartNumber;
    char Partname[40];
    double UnitPrice;

    CarPart *next;
};

class ListOfParts
{
    int size;

public:
    CarPart *head;

    ListOfParts();
    ~ListOfParts();

    const int count() const;
    void insert( CarPart *item );
    CarPart *retrieve( int pos );
};
Run Code Online (Sandbox Code Playgroud)

有了这段代码,为什么我可以写

ListOfParts *pPart = new ListOfParts();
CarPart *pCarPart = new CarPart;
Run Code Online (Sandbox Code Playgroud)

声明ListOfParts的实例需要(),但不是我的CarPart?那令我困惑.当我之前问过一个问题时,人们告诉我这样的声明是一个返回ListOfParts对象的函数,而不是实际的构造函数.所以我猜这仍然是不同的东西.

这里发生了什么事?

PS:我是否正确假设count()右边的const意味着我无法修改count中的任何值?

c++ function linked-list

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

'>'函数声明期间的符号?

因为我仍然希望在12月之前创建一个简单的吃豆人克隆,我现在正在教自己C#以便使用XNA Game Studio 3.1,我找到了最好的答案,并提供了现成的文档来学习因为有点未来安全.

无论如何,问题来自我正在阅读的一本书,其中一个函数被声明为:

public void TransformVectorByReference()>
{
    /* ...stuff... */
}
Run Code Online (Sandbox Code Playgroud)

我假设内部并不重要,因为编译器在函数声明中抱怨'>`符号.但是,多个函数被声明为这样,并且所有函数都抛出了类型的错误:

; 预期.

有人能告诉我这个功能是做什么的/指向我以前的SO问题,因为我没有通过搜索找到任何答案,因为我不知道该怎么称呼这个有趣的事情.

我得到这个代码片段的书是Sam的Microsoft XNA Game Studio 3.0.如果有人对本书有任何其他更好的选择,我会很高兴看到它们.

编辑:

我添加了一个示例函数,从三到五个函数,几乎相同,但一个使用>关键字.然而,有人指出,这可能不是作者的错,而是书的制作/错误纠正的方式.

public void TransformVectorByReference()
{
    Matrix rotationMatrix = Matrix.CreateRotationY( MathHelper.ToRadians(45.0f) );
    // Create a vector pointing the direction the camera is facing.
    Vector3 transformedReference;
    Vector3.Transform(ref cameraReference, ref rotationMatrix, out transformedReference);
    // Calculcate the position the camera is looking at.
    Vector3.Add(ref cameraPosition, ref transformedReference, out cameraTarget);
}

public void TransformVectorByReferenceAndOut()>
{   
    Matrix rotationMatrix = Matrix.CreateRotationY( MathHelper.ToRadians(45.0f) );
    // …
Run Code Online (Sandbox Code Playgroud)

c# syntax xna xna-3.0

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

在Ptr_Vector上提升FOR_EACH?

我正在尝试学习一些Boost图书馆.我目前正在做我认为未来的家庭作业项目(学期尚未开始).然而,这个问题不是关于作业问题,而是关于Boost.

码:

/* AuctionApplication.h */
class AuctionApplication : boost::noncopyable
{
private:
    boost::ptr_vector<Auction> auctions_;
    boost::ptr_vector<Bidder>  bidders_;
    boost::ptr_vector<Bid>     bids_;


/* AuctionApplication.cpp */
Bid *AuctionApplication::GetLatestBid(const Auction *auction)
{
    Bid *highestBid = 0;

    BOOST_FOREACH(Bid *bid, bids_) // Error here!
        if (bid->GetAuction()->GetName() == auction->GetName())
            highestBid = bid;
Run Code Online (Sandbox Code Playgroud)

BOOST_FOREACH用于使用与上面完全相同的代码的法向量.自从我开始使用ptr_vectors以来,我得到了错误:

error C2440: '=' : cannot convert from 'Bid' to 'Bid *'

让我相信ptr_vector以某种方式模糊了foreach方法的指针.

如果我反而写

BOOST_FOREACH(Bid *bid, bids_)
Run Code Online (Sandbox Code Playgroud)

我得到了四种类型的错误

error C2819: type 'Bid' does not have an overloaded member 'operator ->'

这很糟糕,因为我知道出价是一个指针.

如何BOOST_FOREACH正确地迭代ptr_vectors

c++ boost ptr-vector boost-foreach

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

Boost :: Scoped_Ptr中断了代码

检查以下代码:

这有效:

T *p = (std::find( this->first(), this->last(), *pPos ));
if( p != last() )
{
    this->push_back(data);

    T *right = (this->last() - 1);
    T *left  = (this->last() - 2);

    while( *pPos != data )
        std::iter_swap( left--, right-- ); 

    return const_cast<T*>(pPos);
}
Run Code Online (Sandbox Code Playgroud)

这不是:

boost::scoped_ptr<T> p(std::find( this->first(), this->last(), *pPos ));
if( p.get() != last() )
{
    this->push_back(data);

    T *right = (this->last() - 1); 
    T *left  = (this->last() - 2); 

    while( *pPos != data ) 
        std::iter_swap( left--, right-- ); 

    return const_cast<T*>(pPos);
}
Run Code Online (Sandbox Code Playgroud)

第二个版本给出了运行时错误 …

c++ boost pointers

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

Struct不接受wchar_t

这是我唯一能想到的.事情很有感觉.

我有一个结构如下:

struct NumPair
{
    wchar_t *pFirst, *pSecond;
    int count;
Run Code Online (Sandbox Code Playgroud)

与ctor,副本分配和建设

NumPair( wchar_t *pfirst, wchar_t *psecond, int count = 0)
NumPair( const NumPair& np )
NumPair& operator=( const NumPair& np )
Run Code Online (Sandbox Code Playgroud)

这是我最后一个问题的扩展,我在这个问题中要求一种方法来对包含特殊(德语)字符的字符指针进行排序,例如ü, ä, ö.

解决方案似乎使用宽字符类型,但编译器由于某种原因抛出了一百多个转换错误.

样本输入:

// dict_ is a container of NumPairs.
dict_.push_back( NumPair ( "anfangen", "to begin, to start" ) );
Run Code Online (Sandbox Code Playgroud)

编译器抱怨它无法将a转换const char *为a wchar_t.很好,我改变push_back说

dict_.push_back( NumPair ( wchar_t("anfangen"), wchar_t("to begin, to start") ) );
Run Code Online (Sandbox Code Playgroud)

编译器错误:找不到接受所有参数的NumPair ctor.

什么.的.地狱.我尝试了完整的重建,认为我的VSC++ 10正在崩溃.不,猜不是.

我究竟做错了什么?

码 …

c++ wchar-t

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

这段代码可以编译吗?

可能重复:
C++ void返回类型main()main
的正确声明是什么?

简单的问题,真的.

我的朋友和我正在仔细阅读下一学期应该听到的教授的Powerpoint幻灯片.这将是一门Java课程.出于某种原因,他有这个C++代码片段

#include <iostream.h>
main ()
{ cout << "Hello, World\n"; }
Run Code Online (Sandbox Code Playgroud)

我已经告诉我的朋友,"不,这不适用于任何现代C++编译器."

我现在的问题是,这可以编译吗?

c++

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

如何从<img rel="nofollow noreferrer" src ="">标签获取图像?

当我想渲染图片时,我向服务器发送请求以及相关图片进行渲染.奇怪的是它是如何返回的:

<img src="https://blargh.com/displayTemplate?templateid=template1">
Run Code Online (Sandbox Code Playgroud)

该链接应该是图像数据.

使用此功能,如何将其转换为可以向用户显示的图像?这是一个Facebook应用程序,我不能只嵌入HTML.它需要在我的AS应用程序中显示为Bitmap或Sprite或其他任何东西.试图将其转换为Bitmap或BitmapData失败了......

我能给出的唯一其他信息是我的templateLoader是a Loader,它.data应该带有HTML.

html image actionscript-3

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

极其CPU密集型闹钟

编辑:

我想感谢大家的快速回复^^ Sleep()按预期工作,我的CPU不再被这个程序恶意吞噬了!我将按原样保留这个问题,但是让每个人都知道CPU问题已经得到了方便和专业的回答:D

除此之外,我肯定会确保在面对更大,更重要的问题时将微优化保持在最低限度!

================================================== ==============================

出于某种原因,我的程序,我为笑和练习制作的控制台闹钟,是CPU密集型的.它消耗大约2mB的RAM,这对于这么小的程序来说已经相当多了,但它有时会破坏我的CPU超过50%的资源.

大部分时间我的程序除了倒数秒之外什么都不做,所以我想我的程序中的这部分是导致我的CPU压力太大的部分,尽管我不知道为什么.如果是这样的话,你可以推荐一种减少它的方法,或者如果问题不能轻易解决,可能会使用库吗?

/* The wait function waits exactly one second before returning to the *
 * called function.                                                   */     
 void wait( const int &seconds )
 {
 clock_t endwait; // Type needed to compare with clock()
 endwait = clock() + ( seconds * CLOCKS_PER_SEC ); 

 while( clock() < endwait ) {} // Nothing need be done here.
 }
Run Code Online (Sandbox Code Playgroud)

如果有人浏览CPlusPlus.com,这是他们编写的clock()函数的真正复制/粘贴,作为clock()的示例.很多为什么评论//Nothing need be done here如此黯淡无光.我还不完全确定clock()到底是做什么的.

程序的其余部分调用另外两个仅每六十秒激活一次的函数,否则返回调用者并倒计时另一秒,所以我不认为CPU太密集 - 虽然我不知道,这是我的第一次尝试在优化代码.

第一个功能是一个控制台清除使用system("cls"),我知道,它真的,非常慢,不是一个好主意.我将改变后匆忙,但是,因为它只是每60秒激活一次,并且有明显的滞后尖峰,我知道这不是大多数时候的问题.

第二个功能也只用每六十秒重写屏幕内容和更新的剩余时间.

我将在调用wait,clearScreen和显示的函数中进行编辑,如果很清楚这个函数不是问题.我已经尝试引用大多数变量,因此它们不会被复制,也可以避免, …

c++ cpu clock

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

如何访问私有变量?

这个问题并不意味着听起来像现在可能是侮辱性的.

这是一个家庭作业,规格表很少,设计很差,至少可以说.我们有一个功能:

double refuel( int liter, GasStation *gs )
{
    // TODO: Access private variable MaxFuel of gs and decrement.
}
Run Code Online (Sandbox Code Playgroud)

声音够简单?它应该是,但GasStation类没有访问私有变量MaxFuel的功能.那么我怎样才能使用函数加油来访问它?

我不打算创建一个函数,setFuel( int liter )因为如果我改变他的规范,老师总是抱怨相当有力.所以...我想我必须做一些破解,但是我不知道如何在没有明确改变GasStation中的唯一功能并给它一个参数的情况下解决这个问题,这样我就可以在这里调用它.

或许任何提示?

c++ private class

0
推荐指数
1
解决办法
2万
查看次数

Win32:没有窗口出现

我正在编写Frank Luna的书"使用DirectX 10进行3D游戏编程简介"中的示例代码.代码是附录A:Windows编程部分中的第一个Win32示例.

现在,该程序在VC++ 2008/2010下编译,但没有窗口出现,虽然调试会话已经开始,我必须强制关闭它.我不知道它在哪里,我没有使用Win32控制台模式,我关闭了所有其他窗口,没有其他IDE或VC++会话正在运行.

知道为什么会这样吗?

PS:我还检查过我的进程.它确实在运行.

    #include <Windows.h>

    HWND ghMainWnd = 0;

    bool InitWindowsApp(HINSTANCE instanceHandle, int show);
    int Run();

    LRESULT CALLBACK
        WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

    int WINAPI 
        WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR pCmdLine, int nShowCmd )
    {
        if( !InitWindowsApp(hInstance, nShowCmd) )
            return 0;

        return Run();
    }

    bool InitWindowsApp( HINSTANCE instanceHandle, int show )
    {
        WNDCLASS wc;

        wc.style         = CS_HREDRAW | CS_VREDRAW;
        wc.lpfnWndProc   = WndProc;
        wc.cbClsExtra    = 0;
        wc.cbWndExtra    = 0;
        wc.hInstance     = instanceHandle;
        wc.hIcon …
Run Code Online (Sandbox Code Playgroud)

windows winapi visual-c++ directx-10

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