类没有编译
❶ 模板类无法编译通过,谁能帮我解释
返回值前面加个 typename就可以,
这是为了告诉编译器class_A<T>::struct_A是一种类型而不是类的成员变量
其实:
warning C4346: “class_A<T>::struct_A” : 依赖名称不是类型
用“typename”为前缀来表示类型
编译器说的非常明确了!
VS7.1上编译通过!VS6.0不知道可不可以!
template <class T>
typename class_A<T>::struct_A* //---这里加个typename
class_A<T>::generate_new_struct_A_instance()
{
struct_A * new_instance = new struct_A;
new_instance->a = 1;
new_instance->b = 2;
return new_instance;
}
///
改成double 为什么可以,我很长时间没看模板了,具体我也不清楚!
我估计对于特化的函数是把它当作一般函数那样编译的!
❷ 为什么存在的java类没有被编译
是不是类编译都没通过?所以没生成class文件。你检查下那个类编写的语法吧,是不是哪有问题?
如果编译能通过 ,那么通过eclipse的project-clean 清理下文件所在的工程
❸ java文件保存后为什么没有编译
myeclipse不编译可能有多重情况,
这两天eclipse 突然不能自动编译了,无论怎么更改保存, classes目录下都是空的.
在网上找了很多文章,总结如下:
1. 确保 project->build automatically 已经被选上.
2. 如果选上了,也不好使, 使用这一招: project->clean..->选第2个clean select project, 勾上start build immediatelly
3.删除现在的项目,提前设置好编译文件输出路径,重新导入源文件,设置eclipse为保存时编译,然后在保存的时候就可以自动编译了
4.如果项目里引了某个不用的jar包,而那个包又被你删了,就会出现不报错但怎么也编译不出来class文件的情况。Project-->properties-->Java Build Path-->Libraries,可以把所有包都删除,然后一个一个的再引入(需要的),不要一下子把所有包都引入来,没用的可能会引起不良后果。也可以把有问题的包(会有提示)直接remove掉即可。
5. 想删掉某个class文件重新生成,删除class文件后,但classes目录下的文件夹被其它程序打 开,比如Total Commander。此时编译也不会通过,在problems下可能会提示“con't delete classes ……”。关掉其它程序重新编译即可。
6.还有种情况是remove掉 JRE System Library,重新导入即可编译。但是什么原因导致的还不清楚。
7.把build path中所有包都remove掉。然后又add jars,add libraries把需要的加进去,居然又开始编译了。。。
8.project->properties->java build path->source->.../WEB-INF/src的output folder不要默认,编辑让它指向../WEB-INF/classes
然后重新点击build工程即可自动编译。
9.再就是最重要的要看工程下面是否缺少了work目录,由于CVS控制时不把work加如版本,所以checkout后没有这个目录,要手工加上有的工程就能自动编译了
最开始的时候,我只找到了前面7个方法,但是他们都没有解决我的问题.无意中我打开了"Problems"标签,发现里面说缺少work目录,手工加上,然后刷新项目就可以了.
最后两个是我在写这个总结的时候发现的.特别是第九条,对使用CVS进行版本控制的项目比较有用.
10 看看problem是否有错误。
以上都试试。各种情况都可能导致不编译,还是要靠经验。
❹ 为什么MyEclipse下的classes是没有东西java类没有自动编译功能吗
首先可能是重新导入的项目结构与原来的不同,其次刷新项目不自动编译,将WEB-INF下面的classes文件夹中的字节码文件删除后不再重新生成,遇到此问题要检查是否有这一行。
❺ 为什么MyEclipse下的classes是没有东西java类没自动编译
首先同意楼上说的myeclipe会自动编译类文件
补充一点,在myeclipse里可以查看classes文件夹的编译类,使用Navigator就可以了
具体步骤,点击Window->Show View->Other->Navigator
希望能帮到你
❻ 已添加的类,在编译时错误提示类没有定义,这是什么原因
具体需要看代码
比较常见的几个原因
1 类定义在其它文件了,编译的时候没编进来
2 类定义有错 导致系统没识别到
3 在定义之前调用了该类。
❼ java文件存在 为什么没有编译成class文件
java程序编译之后没有产生class文件的原因如下:
如果使用cmd进行编译之后,如果存在错误,是无法产生class文件的,也就不能执行。
如果使用eclipse进行编译之后,没有开启自动编译,就不会自动产生class文件,需要开启自动编译。
❽ C++中,只有类,没有对象,编译时是否会赋予类被分配空间的能力
类是一种概念,用于描述其构造,类不占用内存,没有实体存在。虽然用于存放描述信息必定要占用存储空间,但这个存储空间不是存放类本身结构的。而对象是遵循这种构造概念的约定,从系统分配获得一块存储空间来实际存放所有成员的,你甚至可以想象其中也存放了所有其成员函数的代码。至于在实际实现中,系统采用了哪些技巧,以消除重复存储,节省系统存储空间占用,不属于我们在学习应用时的理解范围内。
在编译源程序时,系统已经知道了类的相关信息,肯定会分配存储空间来存储,与是否运行到某条语句无关。为对象分配存储空间与对象的存储类型有关。