gpt4 book ai didi

c++ - 帮助解决错误 LNK2019 : unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup

转载 作者:行者123 更新时间:2023-11-28 03:49:58 27 4
gpt4 key购买 nike

我最近遇到了这个错误,我搜索了很多但找不到解决方案,我在 visual studio 2010 中制作了一个 win 32 控制台应用程序(c++)并添加了 2 个头文件和 1 个具有主要功能的 .cpp 文件在其中,我没有更改项目的属性,非常感谢您的帮助。这是我的代码:

//listNode.h:
#ifndef LISTNODE_H

#define LISTNODE_H

template< typename item > class Node
{

private:

item data;
Node<item> *next;

public:

Node( item d , Node<item> *n );
void setData( item d );
item getData();
void setNext( Node *n );
Node<item>* getNext();

};

template< typename item >
Node< item > :: Node( item d , Node *n )
{
data = d;
next = n;
}

template< typename item>
void Node< item > :: setData( item d )
{
data = d;
}

template< typename item>
item Node< item > :: getData()
{
return data;
}

template< typename item >
void Node< item > :: setNext( Node *n )
{
next = n;
}

template< typename item >
Node<item>* Node<item> :: getNext()
{
return next;
}

#endif


//list:
#ifndef LIST_H
#define LIST_H

#include "listNode.h"

template < typename item > class List
{
private:

Node<item> *first;
Node<item> *last;
int numberOfElements;

public:

List( Node<item> *f , Node<item> *l , int num );
~List();
void addFront( item d );
void addRear( item d );
void removeFront();
void removeRear();
item front();
item rear();
bool isEmpty();
int size();
void print();

};


template < typename item >
List<item> :: List( Node<item> *f , Node<item> *l , int num )
{
first = f;
last = l;
numberOfElements = num;
}

template < typename item >
List<item> :: ~List()
{
for( int i=0 ; i<nummerOfElements ; i++ )
{
Node<item> temp = *first;

delete *first;

first = temp.getNext();

}

first = 0;
last = 0;
numberOfElements = 0;
}



template < typename item >
void List<item> :: addFront( item d )
{
Node<item> newNode( d , first );

first = &newNode;

numberOfElements++;
}

template < typename item >
void List<item> :: addRear( item d )
{
Node<item> newNode;
newNode.setData(d);

if( numberOfElements != 0 )
*last.setNext( &newNode );

last = &newNode;

numberOfElements++;
}


template < typename item >
void List<item> :: removeFront()
{
if( numberOfElements != )
{

Node<item> temp = *first;

delete *first;

first = temp.getNext();

delete temp;

numberOfElements--;
}

else
cout << "list is already empty!\n"
}

template < typename item >
void List<item> :: removeRear()
{
if( numnerOfElements != 0 )
{

//finding the node before last :

Node<item> *beforeLast;

beforeLast = first;

while( true )
{
if( *beforeLast.getNext() == last )
break;

beforeLast = *beforeLast.getNext();
}


Node<item> temp = *last;

delete *last;

last = beforeLast;

delete temp;

numberOfElements--;
}

else
cout<< "list is already empty!\n"
}

template < typename item >
item List<item> :: front()
{
if( numberOfElements != 0 )
return *first.getData();
else
return
-1;
}

template < typename item >
item List<item> :: rear()
{
if( numberOfElements != 0 )
return *last.getData();
else
return -1;
}

template < typename item >
bool List<item> :: isEmpty()
{
if( numberOfElements == 0 )
true;
else
false;
}

template < typename item >
int List<item> :: size()
{
return numberOfElements;
}



#endif


//main.cpp:

#include <string>
#include<iostream>

using namespace std;

#include "list.h"

template < typename item >
int main()
{
string atom1("1");
string atom2("2");
string atom3("3");
string atom4("5");
string atom5("6");

List<item> l1();

l1.addRear( atom4 );
l1.addRear( atom5 );

List<item> l2();

l2.addRear( atom1 );
l2.addRear( atom2 );
l2.addRear( atom3 );
l2.addRear( l1 );

cout << l2.front()


return 0;
}

最佳答案

main 是 C++ 中的一个特殊函数 - 它不能是模板。如果可以,您将如何提供模板化的类型?我想您可能还不太了解模板。

我刚刚通过创建一个 VC++ 控制台项目来检查这一点,其中的主项目如下所示:

template <typename T>
int main() {}

我得到了你得到的链接错误消息,但没有编译错误(应该有)。

关于c++ - 帮助解决错误 LNK2019 : unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5860863/

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