标签: program-entry-point

c ++类为什么需要main?

您好我正在用c ++编写一个小项目,我希望有一些类可以完成一些工作,我编写了接口和类的实现.

令我惊讶的是,我没有一个没有main()的简单类,我想有一个曾经实例化的类,它的方法可以被调用,做的事情,但我不需要(也不想要)类实现中的main().这是我想要拥有的一个例子:

file.h:

class animal
{
 public: 
   animal();
  ~animal();

 public:
   int method1(int arg1);

 private:
   int var1;
};
Run Code Online (Sandbox Code Playgroud)

file animal.cpp:

#include "animal.h"

animal::animal(){...}
animal::~animal(){...}
int animal::method1(int arg1){return var1;}
}
Run Code Online (Sandbox Code Playgroud)

我想将动物类称为另一个文件并让它工作,如下所示:file app.cpp:

#include <neededlib>
#include "animal.h"

int main()
{
 animal dog;
 cout << dog.method1(42);
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是编译器给了我

/usr/lib/gcc/i686-pc-linux-gnu/4.3.3/../../../crt1.o: In function _start:

"(.text+0x18): undefined reference to `main`"

collect2: ld returned 1 exit status 
Run Code Online (Sandbox Code Playgroud)

对于animal.cpp,但我不需要主,或者我需要它吗?

我哪里错了?

c++ program-entry-point class

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

在C中,"主进程结束"与"调用atexit注册的任何函数"之间缺少链接

在C中,当主进程结束时 - 如何调用注册的任何函数atexit()

我理解它是如何atexit()工作的,但我不理解"主进程结束"和"调用注册的任何函数"之间的通信.atexit()我有点多余.

谢谢!

c program-entry-point process atexit

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

Java中"覆盖"主要用途的目的是什么?

这是我们如何覆盖java中的main函数....

public class animaltest 
{
    public static void main(String[] args)  
    {
        horse h = new horse();
        h.eat();
    }
}

public class inheritmain extends animaltest 
{
    public static void main(String[] args)  
    {
        System.out.print("main overrided");
    }
}
Run Code Online (Sandbox Code Playgroud)

但重写主要的好处是什么?

java static overriding program-entry-point

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

从Objectivec调用C main

我想从另一个类(用ObjectiveC编写)中调用C类主函数.我想将一些论点传递给主要论者.我试过这样,但frist参数被忽略了:

char *argv[] = 
{ 
    "--a", 
    "--b", 
    srcFile , 
    destFile
};
my_c_main(4, argv);
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?

c parameters program-entry-point objective-c parameter-passing

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

具有一个goto标签的C代码无法按预期工作

我被要求打破一个C程序,这个程序最初只是一个主要的方法,有很多评论很好的段.如果发生错误,每个段都使用相同的定义函数字符串'die'.die函数使用goto标签'out'来关闭程序.

在将这些段中的每一个转换为函数之后,这些函数现在都是从底部的按比例缩小的main方法调用的,每个段的这个转出代码不再有效.'out'标签位于main中,XCode编译器告诉我goto标签尚未定义.

所以我想我问我如何以最有效的方式在每个本地函数中定义我的out标签?

以下是一些代码片段,所有代码片段都显示在它们的顺序/结构中:

模具定义

    #define die(msg, ...) do {                      \
(void) fprintf (stderr, msg, ## __VA_ARGS__); \
(void) fprintf (stderr, "\n");                \
goto out;                                     \
} while (0)
Run Code Online (Sandbox Code Playgroud)

使用die的函数示例

void createContext(void){
        context = clCreateContext (0, 1, &device_id, NULL, NULL, &err);
        if (!context || err != CL_SUCCESS)
            die ("Error: Failed to create a compute context!");
    }
Run Code Online (Sandbox Code Playgroud)

最后我的主要内容,其中包含最后的模具

main (int argc, char *argv[])
{

    (Several functions called here)

out:
    /* Shutdown and cleanup.  */
    if (data)
        free (data);

    if (results)
        free …
Run Code Online (Sandbox Code Playgroud)

c program-entry-point goto function

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

找不到主类:程序将退出

我正在弄乱Eclipse上的JRE设置.最初项目设置为1.6,当设置为1.7时,我的程序开始显示很多错误.所以当我切换回1.6时,所有编译时错误都消失了,但我现在遇到了一个新问题.当我试图运行包含main函数的启动类时,这在控制台上显示..class文件都存在.请指教.

java.lang.UnsupportedClassVersionError: Demo : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
Exception in thread "main" 
Run Code Online (Sandbox Code Playgroud)

java eclipse program-entry-point .class-file

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

main()函数的返回类型

我得到这个代码:

#include<stdio.h> 
#include<stdlib.h>

void main(void) 
{ 
    char *ptr = (char*)malloc(10); 

    if(NULL == ptr) 
    { 
        printf("\n Malloc failed \n"); 
        return; 
    } 
    else 
    { 
        // Do some processing 
        free(ptr); 
    } 

    return; 
} 
Run Code Online (Sandbox Code Playgroud)

它在Visual C中成功编译,但不在gcc中编译,我得到"错误:'main'必须返回'int'".那么main()函数的返回类型'int'是一个约定(用于编译器定义),还是C的规则?

c program-entry-point

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

使用JFrame找不到主类

同样的事情发生在我之前,我无法解决它.它找不到主力

import java.awt.Color;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.PointerInfo;
import java.awt.Robot;
import javax.swing.JFrame;
import java.awt.AWTException;
import java.awt.HeadlessException;
import java.awt.PopupMenu;

public class Final {
   static PointerInfo pointer;
   static Point point;
   static Robot robot;
   static Color color;
   private static PopupMenu Pan;

   public static void main() {
      JFrame F = new JFrame("RGB");
      F.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      F.getContentPane().add(Pan);
      F.pack();
      F.setSize(300, 300);
      F.setVisible(true);
      F.setSize(300, 300);
      try {
         robot = new Robot();
         while (true) {
            pointer = MouseInfo.getPointerInfo();
            point = pointer.getLocation();
            if (point.getX() == 0 && point.getY() == 0) …
Run Code Online (Sandbox Code Playgroud)

java rgb swing program-entry-point jframe

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

在C中打印main()

所以我得到了这个小块代码.主要功能是打印主要功能.什么印刷?这是某种地址吗?

int main() {
   printf( "%d", main ) ;
 }
Run Code Online (Sandbox Code Playgroud)

c printf program-entry-point

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

Java中的main方法是否必须是静态的?

主要方法(Java请求您在类中拥有)是否必须是静态的?例如,我有这个代码

public class Sheet {

    public static void main(String[] args) {
        myMethod();
    }

    public void myMethod() {
        System.out.println("hi there");
    }

}
Run Code Online (Sandbox Code Playgroud)

这给了我错误

无法对main的非静态调用方法进行静态引用

如果我清楚了,我从方法调用的任何方法都main必须是静态的,并且我从静态方法调用的每个方法都必须是静态的.

为什么我的全班(如果我们更进一步,我的整个程序)和方法必须是静态的?我怎么能避免这种情况?

java methods static program-entry-point

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