G****A 发帖数: 4160 | 1 1. If you want to create an array of class objects, the class must have
a default constructor.
2. try two ways:
const int STKS = n;
Myobject myobject[STKS] = {
Myobject(parm),
Myobject (parm),
Myobject (parm),
Myobject (parm),
};
or
you can use parm as default value in default constructor for easier
life:
Myobject::Myobject(int xxx=parm)
Myobject myobject[STKS]; |
|
k*****l 发帖数: 34 | 2 假设myobject 只有一个带参数的constructor: myobject(int parm),
^^^^
myobject * a =new myobject[n]
编译的时候说找不到 myobject() to initialize a vector.
试图加入参数: myobject * a =new myobject[n](parm)
又说 No initializer allowed for new of an array
请问有什么好办法解决这个问题? |
|
k*****l 发帖数: 34 | 3 en .我也这么想,同时还要填一个myobject::init(int parm)完成
带参数的constructor: myobject(int parm)一摸一样的工作。 够麻烦的。
关键问题是: 为什么c++不让 new myobject[n]带参数呢?? 实现上应该不难啊。这个
限制有什么特别的理由?? |
|
N***m 发帖数: 4460 | 4 估计是new只负责分配空间?
可以用vector ob(n,myobject(parm))来实现。
这个 |
|
t*******y 发帖数: 57 | 5 加一个啥也不干或者提供默认参数的constructor myobject() |
|
z****e 发帖数: 54598 | 6 不是
我的意思是在这个时候,fp应该能够体现出比oop更为高效的地方才对
比如
func1(MyObject obj)
func2(MyObject obj)
func3(MyObject obj)
func4(MyObject obj)
func5(MyObject obj)
func6(MyObject obj)
...
这个时候,因为MyObject结构都是一样的
所以就很容易叠加各种函数
以及对函数做归类,整理,都很容易
但是如果这个时候MyObject的结构改变了
那你就得对这一通函数一顿改
麻烦死你,而且最痛苦的是
这些func可能放在不同的地方,那找起来就麻烦了
所以要控制数据结构数量
最好都是map&list,这样基本上没啥好改的
如果是oop
那是这样
MyObj1.func1
MyObj1.func2
MyObj2.func2
MyObj3.func3
...
本身func不是1st class,所以从属于object
而改动其中一个obj,不会影响到其他obj,所以加减obj就很容易
也很自然,你要改其中任何一个obj的结构也相对容易
尤其是如果这个obj的方法只... 阅读全帖 |
|
d****i 发帖数: 4809 | 7 你没有理解这些annotation的真正用法,应该是返回一个Java object或者Response。
org.json.JSONObject已经是json了,不用像你这样包装成json。应该写成
@GET
@Path("/getJson1")
@Produces(MediaType.APPLICATION_JSON)
public MyObject getJSON1() {
MyObject obj = new MyObject();
obj.setInput("This is input");
obj.setOutput("This is output");
return obj
}
然后定义MyObject class:
public class MyObject {
private String input;
private String output;
// setters and getters
......
} |
|
z*******3 发帖数: 13709 | 8
spring的大多数策略应该是所有多线程都需要的吧?
其他语言尤其是脚本,做不到di和ioc很重要一点是当插入的时候
需要有一个宿主,which绝大多数时候是对象
@Inject
MyObject myObject
你得先得到这个myObject才能调用方法
其他脚本经常会搞1st class citizen func
这个没有宿主啊,所以就不存在有inject的问题
你要用func,反正作用域是global的,直接用就是了
就类似static method,但是jvm的static区内存应该尽量省着用
一下子把所有func全部塞入这块中去,好像也不是非常合理
尤其是很多不用的funcs,spring就帮你搞这块的东东了
用的时候,spring会init这个func所属的beans,然后存起来
不用的时候释放,等等,这块属于spring framework高级技能了
有兴趣可以展开,这就是轮子怎么造的问题了
ejb提供了更多的选择,比如ejb di就提供了类似spring的功能
等等 |
|
s********e 发帖数: 340 | 9 Question:
A method myMethod in class MyObjectType is declared sysnchronized.
If a call is made to myMethod in instance variable myObject then which
object provides the synchronization lock?
A. The first instance variable declared inside MyObjectType
B. The myMethod object of Type java.lang.reflect.Method
C. myObject itself
D. The client Object making the call
E The static Runtime object available in the JVM
我选的是C
大家看是不是正确,欢迎大家讨论一下!谢谢 |
|
c*********e 发帖数: 5 | 10 Are you using CosNaming instead of BOA?
CosNaming itself is just a naming service, something like
JNDI. The server program will create a Corba server object,
and give it a name(rebind), like "myObject", and put it in
the naming registry(depository). The name can be an arbitry
string--doesn't have to do with the interface names you
defined in IDL.
The client program will get(narrow) the object reference
using the name "myObject".
Think of NameComponent as the key to a huge hash table where
all se |
|
|
|
|
h****8 发帖数: 599 | 14 我想问题在于,如果new可以接受N个参数作为constructor得参数,那么new本身的
signature怎么写? |
|
p***o 发帖数: 1252 | 15 这个需求用operator new[]再加上placement new就好了。 |
|
|
h*****0 发帖数: 4889 | 17 没有办法解决。C++这个就是悲剧。
用指针数组吧。 |
|
z****e 发帖数: 2024 | 18 姐姐能不能给写一个?
我写个operator new[]怎么都没搞成。好像只能用一个argument in the parameter
list. |
|
p***o 发帖数: 1252 | 19 都改过来了还这么跳!
T *arr = static_cast(operator new[] (sizeof(T)*N));
for (int i = 0; i < N; ++i)
new (arr+i) T(whatever_depends_on_i); |
|
z****e 发帖数: 2024 | 20 姐,你这句:
“都改过来了还这么跳!”
我读了半天,硬是没有弄明白什么意思!以前从来没见过这句话啊。
你给语法分析分析吧。
什么“都改过来了”?
谁在 “跳”? |
|
z****e 发帖数: 2024 | 21 怎么delete?
class A{
public:
A(int i):i(i){
cout<<"A::ctor"<
}
int get() const{
cout<
}
~A(){
cout<<"A::~A()"<
}
private:
int i;
};
template
T* new_with_ctor(int N){
T *arr = static_cast(operator new[] (sizeof(T)*N));
for (int i = 0; i < N; ++i)
new (arr+i) T(i);
return arr;
}
int main(int argc, char* argv[]){
int N=3;
A* p=new_with_ctor(N);
for(int i=0;i
p[i].get();
}
//destruction
for(int i=0;i
|
|
|
|
z****e 发帖数: 2024 | 24 还想问一句,
默认的operator new[]里边是怎么开辟内存的?
默认的operator delete[] 呢?
我刚才是重载了这个两个东东,里边都用了malloc 和free。
但是默认的,里边是用的什么? |
|
|
t****t 发帖数: 6806 | 26 这个回答很有气势, 我喜欢! 下次我也这么答. It's not of your business! |
|
z****e 发帖数: 2024 | 27 master shifu,你这个说错了,应该是:
It's none of your business.
hehe. |
|
|
t****t 发帖数: 6806 | 29 i think both can be used. |
|
|
z****e 发帖数: 2024 | 31 你好像又错了?
是不是
i think either can be used.
更好?
嘻嘻。 |
|
|
|
t****t 发帖数: 6806 | 34 more like a tang monk and definitely not my apprentice. |
|
|
t****t 发帖数: 6806 | 36 "Tang monk不然真不好理解"才真不好理解呢, 你说的是中文吗? |
|
c******o 发帖数: 1277 | 37 Clojure 没有传统意义的object,但是里面的"object"和function是一类东西。
scala的function灵活性不比JS差。。
只是不一样的做法,用保持灵活性的同时,增加复杂性来增加可靠性,这种trade off
是我为什么喜欢
scala多于javasript的原因。
不说别的,说说javascript的经典陷阱,对本对象中数据进行 enumerate:
for (var name in myObject) {
if (myObject.hasOwnProperty(name)) {
alert(name);
}
}
你会得到unexpected result如果你没用hasOwnProperty |
|
k**********g 发帖数: 989 | 38
it
In C++11, if you need to enumerate the entire collection in the natural
order, there's no need to use iterator explicitly. Just loop over a
reference to the values.
vector < myobject > vec ;
for (const myobject & : vec ) { /* do stuff */ }
(space inserted to prevent MITBBS clobbering)
Similar argument applies to "auto" variable. |
|
p****r 发帖数: 7 | 39 right. The webservices call returns something like
myobject:hash(ea214653)
How to interpret this obj. By wsdl? Or is there any function I
Can use to parse the obj. Info? Thanks. |
|
A*****i 发帖数: 3587 | 40 不是来反驳你的
但是基本上现在nodejs很少人用builtin的语句了
比如这种for (var name in myObject)
我们通常用underscore的keys, values, pairs等等来遍历一个object
js最适合做的应该是io和异步处理,把C或者java模式复杂的callback彻底一扫而光
而这些所谓陷阱也好,bug也好基本上现在社区内一搜一大把的替代产品
这才是js最牛逼的地方,如果一门语言一出来便没有可再生的余地那其实它能做的也很
有限了
off |
|
z*******3 发帖数: 13709 | 41
可以这么说,毕竟是framework,还是有东西要你遵守的
不过这个部分跟你语言的部分分离
不侵入你语言的实现,这样你就可以复用很多代码了
因为同样的java代码,你放在哪里,都不需要修改
你的spring跟我的spring用的java文件是一样的
这样你至少在测试的时候就很方便,没有context要折腾
这个方法过了那就是过了,不存在说有context的问题
spring的xml很傻瓜
就是beans.xml
那个xml文件里面就这些东西,你看一下就懂了
spring是一个组件的pool
tomcat是一个thread的pool
这个thread主要用来管理网络上发送过来的req
然后tomcat会从thread pool里面抓出一个thread去处理这个req
然后你写的主要是组件,不管是servlet,还是spring这些
你写的都是component,不涉及thread这些,就放到server里面去被调用
对吧?传统的做法,都是servlet like的方式
就是你在servlet里面实现逻辑,如果你在servlet里面要用其他... 阅读全帖 |
|
s****y 发帖数: 503 | 42
但是用IBM的包就没问题,而且如果要自己封装MyObject,我还不如直接用String了呢? |
|