小编Rya*_*yan的帖子

arrow-> operator重载如何在c ++内部工作?

我理解正常的运算符重载.编译器可以直接将它们转换为方法调用.我不太清楚 - >运算符.我正在编写我的第一个自定义迭代器,我觉得需要 - >运算符.我看了一下stl源代码并实现了我自己的代码:

MyClass* MyClassIterator::operator->() const
{
    //m_iterator is a map<int, MyClass>::iterator in my code.
    return &(m_iterator->second);
}
Run Code Online (Sandbox Code Playgroud)

然后我可以使用MyClassIterator的实例,如:

myClassIterator->APublicMethodInMyClass().
Run Code Online (Sandbox Code Playgroud)

看起来编译器在这里做了两个步骤.1.调用 - >()方法获取一个临时的MyClass*变量.2.在temp变量上调用APublicMethodInMyClass使用其 - >运算符.

我的理解是否正确?

c++ operator-overloading

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

如何在JBOSS中获取SessionContext

我在会话bean中尝试了几种方法,例如:

@Resource
private SessionContext ctx;
Run Code Online (Sandbox Code Playgroud)

要么

private SessionContext ctx;

@Resource
private void setSessionContext(SessionContext ctx) {
  this.sctx = ctx;
}
Run Code Online (Sandbox Code Playgroud)

要么

InitialContext ic = new InitialContext();
SessionContext ctx = (SessionContext) ic.lookup("java:comp/env/sessionContext");
Run Code Online (Sandbox Code Playgroud)

它们都没有工作,JBOSS中出现了不同的异常.

我真的生气了.任何人都可以告诉我什么是错的.非常感谢!

jboss ejb

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

mysql新用户访问被拒绝

刚开始使用mysql.我使用root登录并按照在线参考创建新用户:

mysql> CREATE USER 'abc'@'%' IDENTIFIED BY '111111';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'abc'@'%' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)

然后我退出并尝试使用新用户登录:

mysql --user=abc --password=111111 mysql
Run Code Online (Sandbox Code Playgroud)

但得到一条错误信息:

用户'abc'@'localhost'拒绝访问(使用密码:YES)

我错过了什么吗?

mysql

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

什么是.so.2文件?

我使用GCC从源代码编译了英特尔TBB.它生成一个libtbb.so和littbb.so.2.看起来.so.2文件是真正的共享库,libtbb.so只包含一行文本 INPUT (libtbb.so.2)

生成这两个文件而不是一个文件的目的是什么?对于INPUT (libtbb.so.2),什么是语法?我想了解更多相关信息.

c++ linux shared-libraries

7
推荐指数
2
解决办法
1244
查看次数

Antlr如何转义引号字符串中的引号符号

我想要一些语法来表示一个字符串,用 " 引用,字符串中的 " 符号可以像 \" 这样引用。以下是我的语法:

fragment
NUM_LETTER : ('a'..'z'|'A'..'Z'|'0'..'9');

STRING_LITERAL : '"' (NUM_LETTER|'_'|('\\"'))* '"';
Run Code Online (Sandbox Code Playgroud)

但它不起作用。我尝试在 AntlrWorks1.5 中解释 "\"a" 并且它在为 STRING_LITERAL 生成的语法树中给出了 MismatchedTokenException。我的语法的哪一部分是错误的?

java antlr

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

Microsoft.Office.Interop.Excel.WorksheetFunction 不包含 excel 中的所有函数

我正在尝试从 C# 调用 excel 函数。我可以使用以下代码来获取 Excel 函数:

Application app = new Application();
WorksheetFunction functions = app.WorksheetFunction;
var sum = functions.Sum(1, 2);
Run Code Online (Sandbox Code Playgroud)

我可以从 WorksheetFunction 对象中获取像 SUM 这样的函数。但现在所有的功能都在那里,比如左、右、日期等。我可以在其他地方找到它们吗?

c# excel office-interop

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

如何创建 wpf 数据网格而不绑定到任何东西?

我想创建一个不绑定到任何东西的数据网格。用户可以添加/删除/编辑数据,代码将以编程方式收集数据。我执行了以下操作,但网格不允许我添加新行。

<DataGrid Name="dgData" CanUserAddRows="True" MinHeight="100">
            <DataGrid.Columns>
                <DataGridTextColumn Header="Column1"></DataGridTextColumn>
                <DataGridTextColumn Header="Column2"></DataGridTextColumn>
            </DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

当我运行该应用程序时,网格仅显示标题。与 winform DataGridView 不同,它给出了一个空的第一行。我无法在 GUI 上添加新行。

c# wpf datagrid

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

在非GUI应用程序中使用Qt,优点和缺点?

我正在使用C++开发半实时系统.很多设计和逻辑都是基于事件的.在寻找c ++的一些事件框架时,我找到了Qt.Qt中的信号/插槽,状态机看起来非常适合我的情况.我更喜欢他们而不是提升.此外,QObject系统有很多很好的功能,例如QObject Model,moc,父子对象内存管理等.但是我对Qt知之甚少,我在这里有几个问题.

  1. 现在我对c ++/stl非常熟悉,是否值得花时间学习Qt?无论如何,我不会使用它最受欢迎的部分,UI.

  2. 与stl/boost相比,Qt的性能如何?由于应用程序是实时的,因此性能是关键要求.例如,我必须非常仔细地设计数据布局以最大化CPU缓存利用率.Qt提供的所有功能都会带来一些开销.会有多大的影响?

  3. Qt开发中的多线程怎么样?我可以在Qt对象中使用stl线程或pthread,还是必须使用Qt提供的线程?这个容易用吗?

c++ qt

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

排序命令没有按预期工作

我有一个非常简单的 3 个字段的文本文件,每个字段用空格分隔,如下所示:

123 15 0
123 14 0
345 12 0
345 11 0

我发出了一个排序命令来按第一列排序:sort -k 1 myfile. 但它不仅仅按第一列排序。它按整行排序,我得到以下结果:

123 14 0
123 15 0
345 11 0
345 12 0

我的命令或文件有什么问题吗?

shell

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

C++如何对右值引用进行模板推导?

template<typename T>
void foo(T&& arg);
Run Code Online (Sandbox Code Playgroud)

我知道 arg 是否是左值,例如int x = 0; foo(x);thenT = int&并且函数将为foo(int& &&),即foo(int&).

如果 arg 是一个右值,例如foo(0);然后T = int,函数将是foo(int&&).

如果我有

template<typename T>
void foo(T& arg);

template<typename U>
void bar(U&& u)
{
    foo(u);
}
Run Code Online (Sandbox Code Playgroud)

是什么Tfoo打电话时bar(0)

c++ templates rvalue-reference

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