我有一个庞大的Excel 2003电子表格,我正在努力.有很多非常大的公式,有很多细胞参考.这是一个简单的例子.
='Sheet'!AC69+'Sheet'!AC52+'Sheet'!AC53)*$D$3+'Sheet'!AC49
Run Code Online (Sandbox Code Playgroud)
他们中的大多数都比这更复杂,但这可以很好地了解我正在使用的内容.这些细胞参考中很少是绝对的($ s).我希望能够将这些单元格复制到不同的位置,而不会更改单元格引用.我知道我可以简单地使用f4来使引用绝对,但是有很多数据我可能需要稍后使用Fill.有没有办法暂时禁用复制粘贴/填充更改单元格引用而不使引用绝对?
编辑:我刚刚发现你可以通过将单元格内容复制为文本而不是公式来对VBA执行此操作.我不想这样做,因为我想一次复制整行/列.我缺少一个简单的解决方案吗?
我强调引用不是指针,而是对象的别名.但是,我仍然不明白这对我作为一个程序员究竟意味着什么,即什么是引擎盖下的引用?
我认为理解这一点的最好方法是理解为什么我不能在地图中存储引用.
我知道我需要停止将引用视为指针的语法,只是不确定如何:/
我一直认为必须使用指针进行多态性.使用规范示例:
DrawEngine::render(Shape *shape)
{
shape->draw();
shape->visible(true);
}
Run Code Online (Sandbox Code Playgroud)
并将指针传递给各种Shape派生类.它与引用一样吗?
DrawEngine::render(Shape &shape)
{
shape.draw();
shape.visible(true);
}
Run Code Online (Sandbox Code Playgroud)
甚至有效:
engine.render(myTriangle); // myTriangle instance of class derived from Shape
Run Code Online (Sandbox Code Playgroud)
如果这样可行,这两种情况之间是否存在差异?我试图在Stroustrup中找到信息,但我一无所获.
我重新打开了这个,因为我想再探索一下.
所以至少有一个区别是dynamic_cast.对我来说,多态性包括使用dynamic_cast.
我可以去吗
Rhomboid & r = dynamic_cast<Rhomboid &>(shape);
Run Code Online (Sandbox Code Playgroud)
如果演员表失败会怎么样?这有什么不同吗?
Rhomboid * r = dynamic_cast<Rhomboid*>(&shape);
Run Code Online (Sandbox Code Playgroud) 当通过引用函数传递时取消引用指针会发生什么?
这是一个简单的例子
int& returnSame( int &example ) { return example; }
int main()
{
int inum = 3;
int *pinum = & inum;
std::cout << "inum: " << returnSame(*pinum) << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
是否有临时对象产生?
如何在gradle中导出可执行jar,这个jar可以运行,因为它包含引用库.
的build.gradle
apply plugin: 'java'
manifest.mainAttributes("Main-Class" : "com.botwave.analysis.LogAnalyzer")
repositories {
mavenCentral()
}
dependencies {
compile (
'commons-codec:commons-codec:1.6',
'commons-logging:commons-logging:1.1.1',
'org.apache.httpcomponents:httpclient:4.2.1',
'org.apache.httpcomponents:httpclient:4.2.1',
'org.apache.httpcomponents:httpcore:4.2.1',
'org.apache.httpcomponents:httpmime:4.2.1',
'ch.qos.logback:logback-classic:1.0.6',
'ch.qos.logback:logback-core:1.0.6',
'org.slf4j:slf4j-api:1.6.0',
'junit:junit:4.+'
)
}
Run Code Online (Sandbox Code Playgroud)
在我运行之后:gradle build
它创建了build文件夹,我在build/libs/XXX.jar中运行jar:
java -jar build/libs/XXX.jar
这是一个执行说:
Exception in thread "main" java.lang.NoClassDefFoundError: ch/qos/logback/core/joran/spi/JoranException
Run Code Online (Sandbox Code Playgroud)
我如何使用参考库运行它?
你能解释一下返回值,引用值和const引用值之间的区别吗?
值:
Vector2D operator += (const Vector2D& vector)
{
this->x += vector.x;
this->y += vector.y;
return *this;
}
Run Code Online (Sandbox Code Playgroud)
非const引用:
Vector2D& operator += (const Vector2D& vector)
{
this->x += vector.x;
this->y += vector.y;
return *this;
}
Run Code Online (Sandbox Code Playgroud)
Const参考:
const Vector2D& operator += (const Vector2D& vector)
{
this->x += vector.x;
this->y += vector.y;
return *this;
}
Run Code Online (Sandbox Code Playgroud)
这有什么好处?我理解const引用传递给函数背后的意义,因为你要确保不要修改引用指向函数内部的这个值.但我对返回const引用的含义感到困惑.为什么返回引用比返回值更好,为什么返回const引用要比返回非const引用更好?
c++ reference const-reference return-by-reference return-by-value
我做了一个两元素Vector结构,我想重载+运算符.
我使我的所有函数和方法都采用引用而不是值,我希望+运算符以相同的方式工作.
impl Add for Vector {
fn add(&self, other: &Vector) -> Vector {
Vector {
x: self.x + other.x,
y: self.y + other.y,
}
}
}
Run Code Online (Sandbox Code Playgroud)
根据我尝试的变化,我要么遇到生命问题,要么输入不匹配.具体来说,这个&self论点似乎没有被视为正确的类型.
我已经看到了模板参数的例子上impl,以及Add,但他们只是导致不同的错误.
我发现如何为不同的RHS类型和返回值重载运算符?但即使我把一个use std::ops::Mul;放在顶部,答案中的代码也不起作用.
我正在使用rustc 1.0.0-nightly(ed530d7a3 2015-01-16 22:41:16 +0000)
我不接受"你只有两个字段,为什么要使用参考"作为答案; 如果我想要一个100元素结构怎么办?我会接受一个答案,证明即使有一个大的结构我也应该通过值传递,如果是这样的话(我认为不是这样).我有兴趣知道结构大小的一个好的经验法则并且通过值vs struct传递,但这不是当前的问题.
我的第一个问题是希望它是合适的:
共享接口程序集 - 我有一个'共享'程序集,它有一个接口,我们可以调用它IDocRepository.它标有,[ServiceContract]并有几个[OperationContract]标记的方法.
WCF实现程序集 - 我有两个WCF服务项目,每个项目都引用共享程序集,每个项目都将该接口实现为WCF服务.
消费者组装 - 最后,我有一个'客户'项目,也引用了共享程序集,并引用了两个WCF服务.
但是,使用者程序集中生成的服务引用来自自动生成的接口版本:
public partial class ExampleClient : System.ServiceModel.ClientBase<SomeNamespace.ExampleSvcRef.IDocRepository>, SomeNamespace.ExampleSvcRef.IDocRepository {
Run Code Online (Sandbox Code Playgroud)
我所期望的
我希望两个引用都会自动继承我定义的接口,消费者/客户端程序集也引用它.有点像它为参数和返回类型提供的类的重用,但对于服务接口.
为什么
我可以创建一个服务引用代理的实例并将其转换为我的接口类型.
所以我每次都可以手工修改生成的代码,但应该有更好的方法......?
(编辑:我在两个服务引用中都选择了"在引用的程序集中重用类型"和"在所有引用的程序集中重用类型"选项)
我加入了一个新的小组,其编码指南(对我而言)似乎过时了.
但只是在没有有效备份的情况下反对机器不会让我无处可去.
所以我转向SO,看看我们是否能够理性的理由支持/反对(嘿,我的选择可能是错的,所以我们会赞赏论证的双方).
争论的准则是:
提示:对返回参数使用指针而不是引用.
Run Code Online (Sandbox Code Playgroud)void Func1( CFoo &Return ); // bad void Func2( CFoo *pReturn ); // good理由:
使用引用时,它看起来与值相同.调用该函数后,调用者可能会惊讶于他的值已被更改.被调用者可能会无意中修改该值而不会影响调用者的值.通过使用指针,调用者和被调用者都清楚可以更改该值.在代码审查中使用引用可能特别容易引起误解.
由于我经常遇到需要S4编程来保持概述的情况,我收集了很多关于S4对象,方法和编程的资料.我在这里列出了它们作为参考.请添加您自己的来源.
在网上
methods帮助文件:从包装方法中,很多必要的信息都可以找到帮助文件图书
PS:如果有人找到社区复选框,您可以将其设为社区拥有的帖子.不知何故,我再也无法在编辑窗口中找到它......
reference ×10
c++ ×5
pointers ×2
c# ×1
cell ×1
coding-style ×1
copy-paste ×1
dictionary ×1
excel ×1
executable ×1
gradle ×1
jar ×1
lifetime ×1
manual ×1
polymorphism ×1
r ×1
reusability ×1
rust ×1
s4 ×1
std ×1
stdmap ×1
traits ×1
wcf ×1