2017-03-24 46 views
-7

在JavaScript中,当我创建一个构造函数,我可以做这样的事情:C++和JAVA功能

function func(name) { 
    this.name = name; 
} 
func.name = "func"; 
var a = new func("a"); 
alert(func.name); 
alert(a.name); 

两个funcnew funcname原型。
如何在Java和C++中执行操作?
我知道,在Java中:

public class func { 
    String name; 
    public func(String text) { 
     name = text; 
    } 
} 
func a = new func("a"); 
System.out.println(a.name); 

,但如何做func.name,我如何做,在C++?
谢谢!

+0

你为什么要比较所有3? – Ravi

+5

第一步:不要在Java/C++中编写JS。整个原型的东西在后两种语言中不存在(至少不是内置语言元素) – deviantfan

+0

编写Java时,请遵循Java编码约定。 –

回答

0

部分答案:

,但如何做func.name

你不能这样做,在Java中。你不能动态给一个类或方法命名。相同的C++。


并没有特别的意思的名称。我需要一些变数。 func.func如果你喜欢。

基本上相同的答案。

您不能在Java或C++中的类或方法(或函数)上动态设置任何属性。

我想你可以声明静态变量,就像这样:

public class Func { 
    static String fname; 
    String name; 
    public Func(String text) { 
     name = text; 
    } 
} 

Func a = new Func("a"); 
Func.fname = "funky"; 
System.out.println(a.name); 
System.out.println(Func.fname); 
+0

我并不是专指一个名字。我需要一些变数。 'func.func'如果你喜欢。 –

+0

@ZivSdeor同样的交易。 – Quentin

1

我强烈建议您检查您的这个Object oriented programming知识。

否则,您可以使用encapsulation访问对象的领域,就这样

#include <string> 
#include <iostream> 

class Func { 

    public: 
     Func(std::string text) : name(text) {} 

     std::string getName() 
     { 
      return name; 
     } 

    private: 
    std::string name; 
}; 


int main() { 

    Func f("func"); 
    std::cout << f.getName() << std::endl; 
}