在我的编程经验的这一点上,我意识到我在今天使用的大多数语言(C++,.Net,Java等)中都有异常处理,至少与C相比,我已经准备好了.高级C课程,让我真正想到这些术语与我目前的范例相比.
在C语言中,程序员可以首先防止错误发生,这对任何习惯于异常处理的人来说都是相当艰巨的.我发现任何遇到异常处理的语言都是面向对象的.至少据我所知,第一个面向异常处理的面向对象语言是C++,它是C语言的演变.(如果我错了,请纠正我)
话虽如此,是否有一些关于允许异常处理的语言的面向对象性质,或者是因为面向对象语言真正开始成为常见事件而添加的异常处理?什么是C缺乏说,C++,在机器代码,使激活工作?
我发现这篇文章关于异常处理如何在幕后工作,但不确定该信息如何应用于我的问题(即,C缺乏通知,延续等?).提前致谢.
我在列表中有一个用户定义的结构,我试图在结构列表中的单个元素中更改值.访问元素不是问题.但是,当我尝试更新该值时,编译器会抱怨:
"表达是一种价值,因此不能成为作业的目标"
例如:
Public Structure Person
Dim first as String
Dim last as String
Dim age as Integer
End Structure
Run Code Online (Sandbox Code Playgroud)
_
Public Sub ListTest()
Dim newPerson as Person
Dim records as List (Of Person)
records = new List (Of Person)
person.first = "Yogi"
person.last = "bear"
person.age = 35
records.Add(person)
records(0).first = "Papa" ' <<== Causes the error
End Sub
Run Code Online (Sandbox Code Playgroud) 我在这个问题中看到了这个词.我想我有一个想法,但不确定这是一个本地化的术语,还是该术语的广泛传播意义.
Shotgun会暗示他可能(过度)使用比更简单,更优雅的解决方案更笨重或更笨重的工具或技术.还有伏都教?
我正在互联网上查看是否有任何关于如何在仍然初始化实例变量的同时初始化类中的共享成员的好例子.我找到了一个可能适合答案的表达式:
Shared Sub New()
'Declare shared members
End Sub
Run Code Online (Sandbox Code Playgroud)
但你也有标准
Sub New()
'Declare instance members
End Sub
Run Code Online (Sandbox Code Playgroud)
每次从类创建对象时,如何在不重新初始化共享成员的情况下初始化实例和共享成员?
所以前几天,我正在查看一些旧的C++书籍,并注意到了一种创建我以前从未见过的C++类的方法.到目前为止,我所看到的一切都始终使用#include"header.h"并分别编译实现文件.我看到本书作者所做的实际上是在头文件末尾的实现中添加了一个include指令,并从编译中省略了.cpp文件.有人用过这种风格吗?
例如:我有main.cpp employee.h employee.cpp
//main.cpp
#include <iostream>
#include <stdio.h>
#include <string>
#include "employee.h"
void main()
{/*some code*/}
//employee.h
#ifndef EMPLOYEE_H
#define EMPLOYEE_H
class employee
{
public:
//public members
private:
//private members
}
#endif
//employee.cpp
#include "employee.h"
#include <string>
//public member definitions
Run Code Online (Sandbox Code Playgroud)
我会像这样正常编译这个项目:
g++ main.cpp employee.cpp
Run Code Online (Sandbox Code Playgroud)
但在作者的例子是这样的
//main.cpp
#include <iostream>
#include <stdio.h>
#include <string>
#include "employee.h"
void main()
{/*some code*/}
//employee.h
#ifndef EMPLOYEE_H
#define EMPLOYEE_H
class employee
{
public:
//public members
private:
//private members
}
#include "employee.cpp" // <-- the line …
Run Code Online (Sandbox Code Playgroud) 在寻找BigInt库的过程中,我遇到了这篇文章: Microsoft Windows上的C或C++ BigInt库
接受的答案提到了GMP库,但其中一位评论者声称库不会非常优雅地出错,并且对生产代码不利.有没有人用这个库进行任何长期开发?有什么好的选择吗?提前致谢.
正在寻找心爱的W3schools并找到了这个页面并且实际上学到了一些有趣的东西.我不知道你可以在不指定值的列的情况下调用insert命令.例如;
INSERT INTO table_name
VALUES (value1, value2, value3,...)
Run Code Online (Sandbox Code Playgroud)
从我朦胧的记忆中拉出来,我似乎记得SQL教授提到你必须把字段视为没有任何特定的顺序(虽然在RDB方面,但它不能保证).
我的问题是,服务器如何知道哪些值被分配到哪些字段?*我会自己测试一下,但我不打算使用生产服务器来做我现在可以访问的所有内容.
如果这项技术具体,我正在研究PostgresSQL.这个特殊的语法怎么有用呢?
以下字符串的格式是针对Microsoft Exchange调用的?
/o=First Organization/ou=First Administrative Group/cn=Recipients/cn=user
Run Code Online (Sandbox Code Playgroud)
我已经看到这个使用LDAP,但现在看到它CDO 1.2.1并最终尝试将其转换为电子邮件地址,如user@domain.com.谢谢.
这个问题可以很容易地采取多种途径,因此我将首先尝试更具体的路径.在使用SQL Server 2005时,我正在尝试创建一个标量函数,它充当从varchar到int的'TryCast'.我遇到问题的地方是我在函数中添加一个TRY块;
CREATE FUNCTION u_TryCastInt
(
@Value as VARCHAR(MAX)
)
RETURNS Int
AS
BEGIN
DECLARE @Output AS Int
BEGIN TRY
SET @Output = CONVERT(Int, @Value)
END TRY
BEGIN CATCH
SET @Output = 0
END CATCH
RETURN @Output
END
Run Code Online (Sandbox Code Playgroud)
事实证明这一陈述存在各种错误,包括"在函数中'开始尝试'中无效使用副作用或时间相关运算符"和"在'END TRY'中无效使用副作用或时间相关运算符'在一个功能中".我似乎无法找到在标量函数中使用try语句的任何示例,这让我想到,函数中的错误处理是否可行?
这里的目标是创建一个强大的Convert或Cast函数版本,以允许SELECT语句执行depsite转换错误.例如,采取以下措施;
CREATE TABLE tblTest
(
f1 VARCHAR(50)
)
GO
INSERT INTO tblTest(f1) VALUES('1')
INSERT INTO tblTest(f1) VALUES('2')
INSERT INTO tblTest(f1) VALUES('3')
INSERT INTO tblTest(f1) VALUES('f')
INSERT INTO tblTest(f1) VALUES('5')
INSERT INTO tblTest(f1) VALUES('1.1')
SELECT CONVERT(int,f1) AS f1_num FROM tblTest …
Run Code Online (Sandbox Code Playgroud) error-handling sql-server-2005 function sql-server-2000 type-conversion
我有点不清楚将一个类中的所有成员私有化并制作公共方法来处理突变的想法.原始类型不是问题,它是我不清楚的封装对象.使对象成员私有的好处是能够隐藏不适用于正在构建的类的上下文的方法.缺点是你必须提供公共方法来将参数传递给底层对象(更多方法,更多工作).另一方面,如果您希望为底层对象公开所有方法和属性,那么您是否只能将该对象公开? 以这种方式暴露物体的危险是什么?
例如,我发现暴露了向量或数组列表中的所有内容很有用.我能想到的唯一缺点是,公共成员可能会分配一种类型,而不是通过隐式转换(或某种影响).一个名义上的指定会减少问题的可能性吗?
只是旁注:我理解真正的封装意味着成员是私人的.
c++ ×3
vb.net ×2
bigint ×1
c ×1
cdo.message ×1
class-design ×1
coding-style ×1
constructor ×1
email ×1
function ×1
include ×1
ldap ×1
oop ×1
postgresql ×1
shared ×1
sql ×1
terminology ×1