问题列表 - 第16817页

访问同一类的另一个对象的受保护属性的方法

对象的方法是否应该能够访问同一类的另一个对象的受保护属性?

我在PHP编码,我刚刚发现,即使不是同一个对象,也允许通过同一个类的方法访问对象的protected属性.

在该示例中,首先,您将在输出中获得"3" - 因为函数readOtherUser将成功访问该值 - 之后将发生PHP致命错误 - 因为主程序将无法访问相同的值.

<?php

class user
{
protected $property = 3;

public function readOtherUser ()
{
    $otherUser = new user ();
    print $otherUser->property;
}
}

$user = new user ();

$user->readOtherUser ();
print $user->property;

?>
Run Code Online (Sandbox Code Playgroud)

这是一个PHP错误还是预期的行为(我将不得不重新学习这个概念...... :))(并且有参考这个事实)?如何在其他编程语言中完成?

谢谢!

php visibility class object instance

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

PHP中的死代码检测

我有一个代码非常混乱的项目 - 这里和那里有很多重复和死代码.

前一段时间单元测试的代码覆盖率为零,但现在我们尝试以TDD方式编写所有新代码,并通过单元测试覆盖"旧"代码来降低技术债务(测试最后技术).

业务逻辑的复杂性非常高,有时候没有人可以回答是否使用了某些方法.

如何找到这种死代码方法?广泛的伐木?更高的测试覆盖率?(这不是很容易,因为客户想要新的功能出来)

php refactoring code-coverage legacy-code

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

如何在gcc中关闭特定的优化标志

我想用优化-O1编译,但是有一个标志,它打开我不想使用.我该如何关闭它?

compiler-construction optimization gcc

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

用JavaScript检测水平div溢出?

我有一个DIV,里面有很多儿童DIV.我想要的是类似于Firefox的标签,当你打开太多标签或主DIV宽度太小时,界面将检测溢出并在右侧显示一个按钮以列出所有隐藏标签.问题是我不知道从哪里开始寻求帮助.

html javascript overflow detection

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

VS2010 beta 2的稳定性如何?

你会用它来建立一个项目吗?(特别是C++)

它完全合法吗?

stability visual-studio-2010-beta-2

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

'重力'在Javascript/HTML5游戏中无法正常工作

我正在用javascript/html5编写一个简单的游戏,我正在尝试实现"引力".

我的代码有点像这样:

gravity = 4;
acceleration = 1.1;

function gameLoop() {

  gravity = gravity*acceleration;

  if (characterPositionY < 600)
    characterPositionY = characterPositionY + gravity;

  setTimeout(gameLoop,1000/30);
}
Run Code Online (Sandbox Code Playgroud)

数字"600"是屏幕的底部,"地面",如果你愿意的话,玩家应该停止下降.

不幸的是,由于重力使得角色在每个循环周期中下降至少4个像素(并且增加)......角色通常会停止在地面之前或之前.像这样,例如:

[1] characterPositionY是590

- 加4

[2] characterPositionY是594

- 加4

[3] characterPositionY是598

- 加4

[4] characterPositionY是602

......过去了.

我以前从来没有真正做过任何游戏,而我只是随着时间的推移而全力以赴.可能有更好的方法来解决这个问题.

javascript

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

如何解决这个轮换问题?

对于你们中的一些人来说,这对你来说非常简单.

但是:当我旋转一个视图时,让我们说从0度开始并向前旋转0.1,1,10,100,150,160,170,179,179,999,并继续向同一方向旋转,这就好了,说出来响亮而清晰:砰!BAAAAAAAAANNNNNGGGG !!!! -179,9999,-170,-150,-50,0,50,100,170,179,99,再次:BBBBAAAANNNGGG !!! -179,999,-170,-100,依此类推......肯定你知道我的意思;-)

想象一下,你在一条路上开车,突然你的英里 - 米 - 这样跳得很负.你会惊慌失措,对吗?

你知道吗?这对我的算法来说非常糟糕.我知道如何解决这个问题,除了检查if-else-blocks,如果我的值突然交换掉了.有些东西告诉我,我必须看一些数学函数,如窦波和其他东西.但是我的数学知识很难达到最高程度.

我该如何解决这个问题?我尝试计算角度之间的距离,即我有两个视图,其中一个位于另一个,两个都旋转.我想计算两个视图的整体轮换.一旦价值突然从-179,99999转换到179,99999,这个小但疯狂的东西会破坏我的计算.如果你知道我的意思,我也不知道180是否存在或者如果在fabsf(179,999999999999999999999)的某处交换东西.

例如:-170度减去50度是什么?好吧,我认为-220度.但是当我旋转-170 - 50时,我最终得到这个值:40度.

我怎么能得到我期望的,-220而不是40,没有任何不安全的交换 - 如果 - 其他逻辑?有时我的自制交换器可以正常工作,但有时它不会因为数学方面的困难.

编辑:我从视图图层的transform.rotation.z属性计算角度.

iphone math cocoa-touch rotation

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

C中的网络编程中的读取功能

我用这段代码从socket读取:

int n ;
char buffer[256];
n = read(newsockfd, buffer, 255);
    if (n < 0)
    {
        error("ERROR reading from socket");
    }
Run Code Online (Sandbox Code Playgroud)

如果必须读取的数据大于255字节(例如1000)必须发生哪些更改?

我知道改变char buffer[1000],我需要不同的解决方案.

c sockets connection network-programming

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

使用Mockito的通用"any()"方法

我有一个接口,其方法需要一个数组Foo:

public interface IBar {
  void doStuff(Foo[] arr);
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Mockito来嘲笑这个界面,我想断言它doStuff()被调用了,但我不想验证传递了什么参数 - "不关心".

如何使用any()泛型方法编写以下代码,而不是anyObject()

IBar bar = mock(IBar.class);
...
verify(bar).doStuff((Foo[]) anyObject());
Run Code Online (Sandbox Code Playgroud)

java unit-testing mocking mockito

181
推荐指数
4
解决办法
29万
查看次数

如果解锁已经解锁的互斥锁,行为是否未定义?

如果解锁已解锁的互斥锁,行为是不安全,安全还是未定义?

问题的目的与下面的代码有关,我不知道在if块中解锁互斥锁是否更好,或者只是在if块之外.

    // This chunk of code makes dual locking semi-autonomous.
    int c_lckd = 0, q_lckd = 0;
    if (pthread_mutex_trylock(&crunch_mutex) == 0) c_lckd = 1;
    if (pthread_mutex_trylock(&queue_mutex) == 0) q_lckd = 1;
    if (q_lckd && !c_lckd) { QUEUE_UNLOCK; q_lckd = 0; }
    else if (c_lckd && !q_lckd) { CRUNCH_UNLOCK; c_lckd = 0; }

    if (c_lckd && q_lckd) {
      printf("cr = %d, max = %d, cnt = %d\n",
        crunching, max_crunching, queue_count(conn_queue));
      if (crunching < max_crunching && queue_count(conn_queue)) {
        pthread_t tid = …
Run Code Online (Sandbox Code Playgroud)

multithreading mutex

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